这应该相当容易,但我不知道怎么能触发广播接收器的onReceive方法。详情如下:
App B提供广播接收器。 清单:
<receiver android:name=".MyNotificationReceiver">
<intent-filter>
<action android:name="com.go.foo.A_ACTION" />
</intent-filter>
</receiver>
Java:
public class MyNotificationReceiver extends BroadcastReceiver {
private final String TAG= "MyNotificationReceiver";
@Override
public void onReceive(Context context, Intent intent) {
Toast.makeText(context, "this is not shown" , Toast.LENGTH_LONG).show();
}
}
App A是Broadcast Sender App:
爪哇
Intent intent = new Intent();
intent.setAction("com.go.foo.A_ACTION");
sendBroadcast(intent);
Log.d(TAG, "broadcast intent sent...");
我可以看到发送广播的日志声明,但接收器的onReceive()回调没有被触发。我做错了吗?
答案 0 :(得分:0)
有趣的是它为什么不起作用。试一试。我知道exported
和enabled
的默认值为true
。但还是试一试。
<receiver android:name=".MyNotificationReceiver" android:enabled="true" android:exported="true">
<intent-filter>
<action android:name="com.go.foo.A_ACTION" />
</intent-filter>
</receiver>
答案 1 :(得分:0)
今天学到了新的东西。从Android 4.1开始,系统不再向没有活动的应用程序组件发送广播。收到的广播在清单中添加活动后开始工作。