将广播从一个进程发送到另一个进程



这是我的要求。

我有一个应用程序,可以由用户强制杀死。我希望此应用程序从其他应用程序接收广播以执行某些任务,即使它是强制终止。

我正在尝试制作另一个带有服务的应用程序,该应用程序将在事件 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相匹配。

相关内容

最新更新