2011-08-29 20 views
7

कहलाती है मैं इरादा सेवाओं की कोशिश कर रहा हूं। यह है कि मैं इसेइरादा सेवा कभी भी

Button updateLocation = (Button) findViewById(R.id.btnUpdateLocation); 
     updateLocation.setOnClickListener(new OnClickListener() { 

      @Override 
      public void onClick(View arg0) { 
       // TODO Auto-generated method stub 
       Intent updateLocIntent=new Intent(ImTracking.this,UpdateLocation.class); 
       startService(updateLocIntent);}}); 

हालांकि मेरे अपडेटलोकेशन क्लास में, यह मेरे किसी भी ब्रेक पॉइंट को कभी भी हिट नहीं करता है।

public class UpdateLocation extends IntentService{ 

    public UpdateLocation() { 
     super("UpdateLocation"); 
    } 


    @Override 
    protected void onHandleIntent(Intent intent) { 

       SharedPreferences prefs = getSharedPreferences("Settings", 0); 
       final String id = prefs.getString("ID", ""); 
       DefaultHttpClient httpclient = new DefaultHttpClient(); 
       HttpPost httpost = new HttpPost(
         "http://iphone-radar.com/gps/gps_locations"); 

       JSONObject holder = new JSONObject(); 
... 

क्या चल रहा है?

धन्यवाद

पीएस। मैं इसका उपयोग कर रहा हूं क्योंकि मैं इसे अलार्म मैनेजर के साथ कॉल करना चाहता हूं। हालांकि बटन क्लिक पर मैं एक प्रगति संवाद दिखाना चाहता हूं, मैं एक इरादा सेवा के लिए प्रगति संवाद कहां रखूंगा? (मुझे अभी तक एसिंक कार्यों के साथ काम करने का अनुभव मिला है)

+0

मैं इस पर कोई विशेषज्ञ हूँ, लेकिन आप अपने रिसीवर रजिस्टर और particulat आशय आप पर कब्जा करना चाहते हैं के लिए एक फिल्टर स्थापित करने के लिए नहीं है? जब मैंने ऐसा किया तो मैंने इसे कोड में किया लेकिन मुझे लगता है कि यह मैनिफेस्ट/एक्सएमएल में भी किया जा सकता है – Kerry

+0

क्या आप मुझे एक उदाहरण दिखा सकते हैं? मुझे यकीन नहीं है कि फिल्टर – Sean

+0

फ़िल्टर से आपका क्या मतलब है कभी-कभी आपने 'AndroidManifest.xml' में गलत 'एंड्रॉइड: नाम' दिया है, यह पैकेज नाम के बिना –

उत्तर

15

आप AndroidManifest.xml में declare your service किया? जब तक यह इस तरह की घोषणा की है यह लागू नहीं किया जाएगा:

<manifest ... > 
    ... 
    <application ... > 
     <service android:name=".ExampleService" /> 
     ... 
    </application> 
</manifest> 
+0

की शुरुआत में इसे सही जगह पर रखें, धन्यवाद – Sean

+1

नाम मैनिफेस्ट टैग में परिभाषित 'पैकेज' के सापेक्ष है। यदि आपके मेनिफेस्ट टैग में 'com.example' के रूप में परिभाषित 'पैकेज' है और आपकी सेवा' com.example.data' में है तो सेवा का नाम '.data.ExampleService' होना चाहिए। –

3

नीचे दी गई रेखा को जोड़ने से आप सेवा के माध्यम से कदम उठाने की अनुमति देंगे। जब आप डिबगिंग नहीं कर रहे हैं तो इसे हटाना सुनिश्चित करें। यदि आप अपनी सेवा की प्रसंस्करण नहीं करते हैं तो उस बिंदु पर रुक जाएगा और जारी नहीं रहेगा।

android.os.Debug.waitForDebugger(); 
+0

हो सकता है क्या मैं इस सेवा को प्रारंभिक सेवा से पहले या बाद में रखूं? – Sean

+0

यह आपके इरादे सेवा के अंदर जाता है। अपने ब्रेकपॉइंट से पहले या HandleIntent() – bradley4

संबंधित मुद्दे