我创建了一个共享一个启动服务的BroadcastReceiver的应用程序。
持有接收者的应用程序没有活动,有接收者类和服务。
以下是清单声明:
<service
android:name=".services.PrintService"
android:enabled="true"
android:exported="true" />
<receiver
android:name=".receivers.MyReceiver"
android:enabled="true"
android:exported="true">
<intent-filter>
<action android:name="art.bridge.PRINT_MESSAGE" />
</intent-filter>
</receiver>
接收者类
public class MyReceiver extends BroadcastReceiver {
public MyReceiver() {
}
@Override
public void onReceive(Context context, Intent intent) {
Log.d(ArtAppl.name , "Receiver reached");
Intent print = new Intent(context, PrintService.class);
if(intent.getStringExtra("message") != null)
print.putExtra("message",intent.getStringExtra("message"));
else
print.putExtra("message","Message not found");
context.startService(print);
}
}
组建另一个应用程序,我尝试启动接收器如下:
Intent bReceiver = new Intent("art.bridge.PRINT_MESSAGE");
sendBroadcast(bReceiver);
但接收器没有运行。
我错过了什么吗?我是否必须在清单中设置另一个操作?
答案 0 :(得分:0)
是否需要将Intent.FLAG_INCLUDE_STOPPED_PACKAGES
作为标志包含在内?