【发布时间】:2011-03-28 17:31:36
【问题描述】:
我有一个正在监听电话的服务。当手机进入空闲状态时,我想向我的活动发送一条消息。看起来我有两个选择来完成这个。 BroadcastReceiver 并绑定到服务。 BroadcastReceiver 看起来是一种更简单的机制,所以我尝试了以下测试。
在我的活动中:
@Override
protected void onStart() {
super.onStart();
IntentFilter filter = new IntentFilter("MyAction");
registerReceiver(new BroadcastReceiver() {
@Override
public void onReceive(Context context, Intent intent) {
Log.d(TAG, "Yay.......");
abortBroadcast();
}
}, filter);
}
在我正在监听事件的服务中,当我检测到我想要的事件时:
Intent localIntent = new Intent(_context, MainActivity.class);
intent.setAction("MyAction");
_context.sendOrderedBroadcast(localIntent, null);
在我的测试中,在我观察到使用调试器发送的广播之后,永远不会调用 onReceive() 方法。我错过了什么?此外,BroadcastReceiver 是本地服务与 Activity 通信的最简单方式吗?
【问题讨论】:
-
您的清单是否有合适的
?
标签: android