【发布时间】:2013-10-16 08:17:24
【问题描述】:
在我的主要活动中,我绑定了一个服务。
//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 都会收到广播(我知道,系统绝对不发送广播) 这真是令人困惑和沮丧。任何人都可以帮助我吗?提前致谢。
【问题讨论】:
标签: android service callback bind broadcast