मुझे लगता है कि आप जो खोज रहे हैं वह ऐसा कुछ है। LocationManager.requestLocationUpdates()
का एक संस्करण है जो पैरामीटर के रूप में PendingIntent
लेता है, और इस इरादे का उपयोग BroadcastReceiver
को आग लगाने के लिए किया जा सकता है। यह कोड स्थान अपडेट के साथ आग लगने के लिए एक कस्टम प्रसारण पंजीकृत करेगा।
Intent intent = new Intent("UNIQUE_BROADCAST_ACTION_STRING_HERE");
LocationManager manager = (LocationManager)context.getSystemService(Context.LOCATION_SERVICE);
long minTime; //This should probably be fairly long
float minDistance; //This should probably be fairly big
String provider; //GPS_PROVIDER or NETWORK_PROVIDER
PendingIntent launchIntent = PendingIntent.getBroadcast(context, 0, intent, 0);
manager.requestLocationUpdates(provider, minTime, minDistance, launchIntent);
तो फिर तुम सिर्फ एक ही आशय कार्रवाई के साथ अपने BroadcastReceiver
रजिस्टर करने के लिए है और यह प्रसंस्करण के लिए स्थान अपडेट प्राप्त होंगे। और, ज़ाहिर है, उस PendingIntent
को चारों ओर रखें क्योंकि आपको किसी बिंदु पर manager.removeUpdates(launchIntent)
पर कॉल करने की आवश्यकता होगी!
अंतिम नोट:
क्योंकि यह लगता है कि आप नियमित रूप से स्थान अपडेट लागू करने के लिए, जबकि अपने अनुप्रयोग अग्रभूमि में नहीं है कोशिश कर रहे हैं, यह ध्यान में रखना। जब तक आप अपने ऐप को बैटरी किलर के रूप में ब्रांडेड नहीं करना चाहते हैं, तो इस कार्यक्षमता को कार्यान्वित करने के तरीके से बेहद सावधान रहें।
स्थान सेवा को आराम करने के लिए आप एक बड़े मिनीटाइम या मिनीडिस्टेंस पैरामीटर के साथ आवृत्ति अप स्थान अपडेट को बहुत कम करना चाहते हैं। यह सुविधा उपयोगकर्ता नियंत्रित वरीयता से भी जुड़ी होनी चाहिए ताकि वे पृष्ठभूमि में ट्रैकिंग स्थान से आपके ऐप को सक्षम/अक्षम कर सकें।
आशा है कि मदद करता है!
यहां आपको http://developer.android.com/reference/android/location/LocationListener.html – schwiz