BroadcastReceiver停止工作

时间:2013-03-01 15:33:19

标签: android broadcastreceiver

一般情况下,我有一个服务,它向我的活动发送一个意图,每6秒始终发送一个意图,每次接收更新计时器BroadcastReceiver

我偶然发现,一段时间后(这是随机的)特定接收器停止工作。

OnPauseunregister我和onResume我再次注册。

这也会在任何设备和Android版本中随机发生。

我通过在网上进行研究发现,onReceive接收器准备好被Android杀死但是我一直在意图。

“接收器生命周期

BroadcastReceiver对象仅在对onReceive(Context,Intent)的调用期间有效。一旦您的代码从此函数返回,系统将认为该对象已完成且不再处于活动状态。 “

仅供参考我在我的活动中声明了这一点

public class MyReceiver extends BroadcastReceiver {

    @Override
    public void onReceive(Context arg0, Intent intent) {

        Log.i("Intent received", "+_ " + intent.getAction());
        if (intent.getAction().equals(TEST)) {
        //do sth
        } else {

        //do sth else
        }


    }
}

即使是花时间阅读也是如此:)。

我没有向我的清单声明任何事情,至于我的logcat,我必须在我的手机上发生这一切。该服务是一个异步任务后的简单发送广播。我做的最后一个测试是通过记录发送的beeing来确保服务中的代码正在运行。服务一直在继续。

我现在远离我的代码写,但我认为没有任何帮助,因为非常简单。 Thnaks

1 个答案:

答案 0 :(得分:0)

我仍然可以弄明白,但我找到了解决问题的方法

计时器现在处于活动状态,接收器正在发送事件但在10000次尝试后我想触发END EVENT。现在接收器,因为他没有工作,我无法得到它,但现在我开始一个意图与额外的相同的活动总是使用标志new_task和clear_top。

无论我的接收器是否正常工作,由于服务正常,我将启动特定活动并伪显示END EVENT。

PS ::这种行为并不总是触发,但有时候。所以现在我很好。

如果我不理解,请发表评论并提出任何问题。感谢