2013-03-01 120 views
2

一般来说,我有一个服务向我的活动发送一个意图,它每6秒钟总是一次,而BroadcastReceiver每次接收时都会更新一个计时器。BroadcastReceiver停止工作

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

OnPause i unregister it和onResume我再次注册它。

此外这发生在任何设备和Android版本中。

我在网上搜索发现,在onReceive之后,接收器已经准备好被Android杀死,但我的意图不断。

“接收器生命周期

一个BroadcastReceiver对象仅适用于调用的onReceive(上下文,意图)的持续时间。一旦这个函数代码返回时,系统考虑的对象完成并不再活跃。 “

FYI我已经声明它像这样我的活动

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 
     } 


    } 
} 

Thans里面很多甚至抽出时间来阅读:)。

我不宣布anythin到我的清单,至于我的logcat我必须在我的电话发生的时刻。该服务是一个异步任务之后的简单发送广播。我做的最后一个测试是通过记录发送的beeing来确保服务中的代码正在运行。服务继续。

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

+0

你可以发布,活动,服务,清单和logcat吗? – 2013-03-01 15:49:37

回答

0

嗯,我还可以找出,但我找到一个解决我的问题

定时器现在处于活动和接收器发送该事件,但经过10000次尝试我想触发结束事件。现在接收器,因为他没有工作,我不能得到它,但现在我开始一个意图额外的相同的活动总是与标志new_task和clear_top。

无论我的接收器是否正常工作,由于服务没问题,我将开始具体的活动并伪造END EVENT。

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

如果我不理解,请评论和问任何事。谢谢