मैं ज्यादातर LocalBroadcasts
का उपयोग करता हूं। वे अनिवार्य रूप से असली प्रसारण की तरह हैं, लेकिन केवल आपके आवेदन के लिए दृश्यमान हैं।
private final BroadcastReceiver broadcastReceiver = new BroadcastReceiver() {
@Override
public void onReceive(Context context, Intent intent) {
String action = intent.getAction();
if(Intent.SOME_ACTION.equals(action)) {
// Do your work
}
}
};
फिर आप रजिस्टर और BroadcastReceiver
इस तरह का पंजीकरण रद्द कर सकते हैं::
@Override
public void onResume() {
super.onResume();
IntentFilter intentFilter = new IntentFilter(Intent.SOME_ACTION);
LocalBroadcastManager manager = LocalBroadcastManager.getInstance(getActivity());
manager.registerReceiver(broadcastReceiver, intentFilter);
}
@Override
public void onPause() {
super.onPause();
LocalBroadcastManager manager = LocalBroadcastManager.getInstance(getActivity());
manager.unregisterReceiver(broadcastReceiver);
}
और अंत में आप अपने Service
से एक प्रसारण भेज सकते हैं सबसे पहले आप की तरह आप एक सामान्य प्रसारण के साथ ही किसी BroadcastReceiver
बनाने के लिए या इस तरह अपने आवेदन में कहीं और:
Intent intent = new Intent(Intent.SOME_ACTION);
LocalBroadcastManager manager = LocalBroadcastManager.getInstance(getActivity());
manager.sendBroadcast(intent);
स्रोत
2014-05-11 20:20:08
आपको यह विचार करने से शुरू करना चाहिए कि आपकी सेवा आपकी गतिविधि की एक ही प्रक्रिया में चल रही है या फिर यह आपकी गतिविधि के बाद एक अलग प्रक्रिया पर चल रही है। – Eido95
हाँ मैंने अपने नवीनतम प्रोजेक्ट से पहले और पहले बाध्यकारी उपयोग किया है, मैंने ब्रॉडकास्ट का उपयोग किया और प्रसारण – yeahman