这是我的要求。
我有一个应用程序,可以由用户强制杀死。我希望此应用程序从其他应用程序接收广播以执行某些任务,即使它是强制终止。
我正在尝试制作另一个带有服务的应用程序,该应用程序将在事件 1 分钟内向我的第一个应用程序发送广播。
我的第一个应用程序应该收到这个广播,即使它是强制杀死。
这就是我正在努力做的事情。
在第一个应用中:
BroadcastReceiver dummy = new BroadcastReceiver() {
@Override
public void onReceive(Context context, Intent intent) {
Log.e("broadcast Received","broadcast Received");
}
};
IntentFilter filter = new IntentFilter("com.action.blockapp");
registerReceiver(dummy,filter);
在我的第二个应用程序中。
Intent intent = new Intent("com.action.blockapp");
intent.addFlags(Intent.FLAG_INCLUDE_STOPPED_PACKAGES);
intent.setPackage("com.example.myapplication2");
sendBroadcast(intent);
当我的应用被强制终止时,我无法接收广播。 请指教。
我的观点 .您需要在后台运行的服务中声明 rece。您在清单中声明的具体<receiver android:name=".service.NotifyReceiver" />
</application>
服务运行时。您可以收到如下所示的通知
Intent intent1 = new Intent(context, NotifyReceiver.class);
intent1.setAction(action);
PendingIntent pendingIntent = PendingIntent.getBroadcast(context, 0, intent1, PendingIntent.FLAG_UPDATE_CURRENT);
希望对您有所帮助!
您已在代码中动态注册BroadcastReceiver
。强制停止应用后,该代码将不再运行,并且您的BroadcastReceiver
不再存在。它不再注册。
您将需要创建一个适当的类来extends BroadcastReceiver
,并为其创建一个 manuifest 条目<receiver>
,其<intent-filter>
与您正在广播Intent
相匹配。