В моей основной деятельности я связываю службу.
//main activity class
public void startNotificationService(){
// add notice service
Context appContext = getApplicationContext();
Intent intent = new Intent(appContext,NotificationService.class);
appContext.bindService(intent, mConnection, Context.BIND_AUTO_CREATE);
}
при создании службы регистрируется широковещательный приемник, поэтому, когда когда-либо платформа Android отправляет широковещательную рассылку, служба может перехватить ее и отправить уведомление.
// service class
@Override
public void onCreate() {
handlerMessage = new UnsolicitedMessageHandler();
IntentFilter intentFilter = new IntentFilter("disassociation");
intentFilter.addAction("remediation");
registerReceiver(new UnsolicitedMessageHandler (), intentFilter);
}
ниже приведен класс дескриптора широковещательного приемника.
class UnsolicitedMessageHandler extends BroadcastReceiver {
@Override
public void onReceive(Context context, Intent intent) {
String action = intent.getAction();
String message;
if (action.equals("disassociation")) {
message = intent.getStringExtra("frameName");
showNotification(R.drawable.disconnect,
"Disassocation Notification", message);
}
if (action.equals("remediation")) {
message = intent.getStringExtra("remMsg");
showNotification(R.drawable.scan, "Remediation Notification",
message);
}
}
}
Все работает нормально, проблема в том, что каждый раз, когда я убиваю приложение и снова запускаю его, UnsolicitedMessageHandler получает широковещательную рассылку (я знаю, система абсолютно не отправляет широковещательную рассылку). Это действительно сбивает с толку и расстраивает. Кто-нибудь может мне помочь? Заранее спасибо.