मुझे एक गतिविधि के onCreate कार्यक्रम में एक कस्टम प्रसारण रिसीवर बनाने की आवश्यकता है और जाहिर है मुझे गतिविधि के onDestroy घटना में प्रसारण रिसीवर को अनरजिस्टर्ड करने की आवश्यकता है
स्पष्टता के लिए यह मेरे द्वारा उपयोग किए जाने वाले कोड का एक स्निपेट है
public class AnActivity extends Activity {
private ResponseReceiver receiver;
public class ResponseReceiver extends BroadcastReceiver {
public static final String ACTION_RESP =
"mypackagename.intent.action.MESSAGE_PROCESSED";
@Override
public void onReceive(Context context, Intent intent) {
// TODO Start a dialogue if message indicates successfully posted to server
}
}
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
IntentFilter filter = new IntentFilter(ResponseReceiver.ACTION_RESP);
filter.addCategory(Intent.CATEGORY_DEFAULT);
receiver = new ResponseReceiver();
registerReceiver(receiver, filter);
}
@Override
public void onDestroy() {
super.onDestroy();
unregisterReceiver(receiver);
}
मैंने पढ़ा है कि गतिविधि के लिए onPause / onResume और onStart / onStop इवेंट को भी पंजीकृत होना चाहिए और प्रसारण रिसीवर को अनरिजर्व करना चाहिए।
मैं वास्तव में यह समझना चाहता हूं कि इसके लिए सबसे अच्छा अभ्यास क्या माना जाता है और क्यों।
onDestroy()
कॉल किया जाता है तो ईवेंट रिसीवर द्वारा नहीं सुने जाएंगे।