我已经尝试过搜索我的答案,但无法得到我正在检查的具体答案。
问题: 我正在尝试拨打电话状态变更接收器。我已经在清单中注册了广播接收器,并为它制作了接收器类。在onReceive()中,我已经注册了一个PhonsStateListener来监听调用状态的变化。 现在,当我接到一个呼叫时,会调用onReceive(),当断开连接时,会再次正确调用onReceive。 但是当我再次重复上述过程时,会在来电时调用onReceive(),但不会在断开该调用时调用。
我的接收器清单
<receiver android:name=".CallReceiver">
<intent-filter>
<action android:name="android.intent.action.PHONE_STATE"/>
</intent-filter>
我不知道这有什么不妥。问题是在断开第二次调用时没有调用onReceive()。如果需要任何其他代码,请告诉我。我正在检查Note2 JellyBean 4.1.2
答案 0 :(得分:0)
您是否尝试将其添加到清单文件中:
<uses-permission android:name="android.permission.WAKE_LOCK" />
并且不要忘记在活动中取消注册接收()你的广播:
@Override
protected void onDestroy() {
LocalBroadcastManager.getInstance(this).unregisterReceiver(your_broadcast_name);
super.onDestroy();
}
答案 1 :(得分:0)
您可能需要获得许可:
<uses-permission android:name="android.permission.READ_PHONE_STATE" />
答案 2 :(得分:0)
感谢您分享您的意见。问题在于广播接收器的代码。我在onReceive()方法中做错了,因为系统级别出现了问题并且我的进程被杀死了。解决这个问题后,它工作得很好。