1
在我的主要活動中,我綁定了一項服務。Android廣播接收器,每次應用啓動時都會收到廣播
在服務中創建的廣播接收器被註冊//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收到(我知道,系統絕對不會發送廣播) 這真是令人困惑和沮喪。任何人都可以幫助我?非常感謝。
我發現一個很好的答案如何刪除STICKY意圖這裏http://stackoverflow.com/questions/11839043/android-how-can-i-completely-abort-除去粘性廣播。如果你的情況是STICKY意圖,然後使用鏈接中提到的解決方案之一 –
非常感謝你Changdeo Jadhav,你救了我的一天!!!!!對我來說,粘性廣播實際上是由我自己發送的(我修改了Android框架類,在那裏發送粘性廣播),所以我可以將它修改爲普通廣播,問題應該解決。我應該對粘性廣播是什麼進行研究。謝謝! – SalutonMondo