2

一般来说,我有一项服务向我的活动发送一个意图,该意图总是每 6 秒BroadcastReceiver一次,并且每次接收更新一个计时器。

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

OnPauseunregister它,onResume我再次注册。

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

我通过在网上研究发现,在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,我必须在它发生的那一刻通过我的电话。该服务是一个异步任务后的简单发送广播。我做的最后一个测试是通过记录发送的蜜蜂来确保服务中的代码正在运行。而且服务还在继续。

我现在远离我的代码编写,但我认为不会有任何帮助,因为它非常简单。纳克斯

4

1 回答 1

0

好吧,我仍然可以弄清楚,但我找到了解决问题的方法

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

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

PS:: 这种行为并不总是触发,但有时。所以现在我没事了。

如果我不明白,请发表评论并提出任何问题。谢谢

于 2013-03-06T11:04:11.927 回答