一般情况下,我有一个服务,它向我的活动发送一个意图,每6秒始终发送一个意图,每次接收更新计时器BroadcastReceiver
。
我偶然发现,一段时间后(这是随机的)特定接收器停止工作。
OnPause
我unregister
我和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
答案 0 :(得分:0)
我仍然可以弄明白,但我找到了解决问题的方法
计时器现在处于活动状态,接收器正在发送事件但在10000次尝试后我想触发END EVENT。现在接收器,因为他没有工作,我无法得到它,但现在我开始一个意图与额外的相同的活动总是使用标志new_task和clear_top。
无论我的接收器是否正常工作,由于服务正常,我将启动特定活动并伪显示END EVENT。
PS ::这种行为并不总是触发,但有时候。所以现在我很好。
如果我不理解,请发表评论并提出任何问题。感谢