मैं अभिभावकीय नियंत्रण/वयस्क सामग्री फ़िल्टरिंग एप्लिकेशन पर काम कर रहा हूं। यह ऐप लगातार बच्चे के मोबाइल पर कॉल और एसएमएस पर नज़र रखता है और सभी गतिविधियों को सर्वर पर लॉग करता है। इसके लिए मैं BOOT_COMPLETED पर एक सेवा (MyService.java) शुरू कर रहा हूँ और सेवा के onCreate विधि में मैं callLog और एसएमएस uri के लिए एक contentobserver (नीचे दिए कोड स्निपेट को देखें) रजिस्टर।एंड्रॉइड सेवा में एक सामग्री ऑब्सर्वर पंजीकृत करना
अब मुद्दा यह है, जब से मैं हर निवर्तमान, आने वाली कॉल और एसएमएस मैं सेवा होना चाहता हूँ लगातार (बंद कर दिया/मार डाला जा रहा है बिना) चल निगरानी करना चाहते हैं। इसके अलावा इस सेवा का उपयोग सामग्री पर्यवेक्षकों को पंजीकृत करने के लिए किया जा रहा है और कोई अन्य प्रसंस्करण नहीं कर रहा है (इसकी ऑनस्टार्ट कमांड विधि डमी है), इसलिए एंड्रॉइड ओएस कुछ समय बाद सेवा को मार देता है। मैं कैसे सुनिश्चित करूं कि सेवा लगातार चलती है और सामग्रीबोधक वस्तु को जीवित रखती है?
public class MyService extends Service { private CallLogObserver clLogObs = null; public void onCreate() { super.onCreate(); try{ clLogObs = new CallLogObserver(this); this.getContentResolver().registerContentObserver(android.provider.CallLog.Calls.CONTENT_URI, true, clLogObs); }catch(Exception ex) { Log.e("CallLogData", ex.toString()); } } @Override public IBinder onBind(Intent arg0) { // TODO Auto-generated method stub return null; } @Override public void onDestroy() { if(clLogObs !=null ) { this.getContentResolver().unregisterContentObserver(clLogObs); } super.onDestroy(); } @Override public int onStartCommand(Intent intent, int flags, int startId) { super.onStartCommand(intent, flags, startId); return Service.START_STICKY; } @Override public boolean onUnbind(Intent intent) { return super.onUnbind(intent); }
लोग पहले ही इस बात पर टिप्पणी कर चुके हैं कि आप सेवा कैसे जारी नहीं रख सकते हैं, लेकिन चूंकि यह सेवा की तरह लगता है कि केवल सामग्री ऑब्सर्वर पंजीकृत करता है, ऐसा लगता है कि असली सवाल यह है कि क्या सेवा पर्यवेक्षक सेवा में मरते समय पंजीकृत रहते हैं (मुझे विश्वास है कि वे करें) और सेवा फिर से शुरू होने पर नए पर्यवेक्षक उदाहरणों को फिर से पंजीकृत करने से कैसे बचें। – spaaarky21