每次都不调用广播接收器

时间:2016-03-30 16:07:47

标签: android

我已经尝试过搜索我的答案,但无法得到我正在检查的具体答案。

问题: 我正在尝试拨打电话状态变更接收器。我已经在清单中注册了广播接收器,并为它制作了接收器类。在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

3 个答案:

答案 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()方法中做错了,因为系统级别出现了问题并且我的进程被杀死了。解决这个问题后,它工作得很好。