在我的主要活动中,我绑定了一项服务。
//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 都会收到广播(我知道,系统绝对不发送广播)这真的很混乱和沮丧。任何人都可以帮助我吗?提前致谢。