2016-04-01 40 views
0

我知道这种类型的问题已被问到,但他们都没有工作解决方案。 我有一个广播接收机,我注册了一个服务,可以正常工作一个小时或更长时间,但在某段时间后不会收到任何内容。有关触发接收机的更多信息服务始终在运行。广播接收器在某段时间后没有收到任何东西

IntentFilter filter = new IntentFilter(); 
    filter.setPriority(IntentFilter.SYSTEM_HIGH_PRIORITY); 
    filter.addAction(Intent.ACTION_SCREEN_OFF); 
    filter.addAction(Intent.ACTION_SCREEN_ON); 
    this.mBroadcastReceiver = new MyBroadcastReceiver(); 
    registerReceiver(this.mBroadcastReceiver, filter); 

请帮忙。

+1

可能是因为你的应用在那段时间内遇害。 –

+0

我不明白你的意思。你可以在删除请解释。 – Ruag

+1

长时间保持应用程序闲置使其成为垃圾收集的理想选择。而当你的手机需要内存时,GC会运行,Android系统因为空闲而长时间不活动而杀死你的应用程序。现在,当你的应用程序不再运行时,你的接收器也是未注册的,因此这些不再有效。 –

回答

1

我也有同样的问题终于有了解决办法。 也许你正在开始接收意图广播的活动,并且在活动中您可能使用了getApplicationContext(),因此当您的应用程序完全没有运行时,getApplicationContext()返回null,它会使您的接收器崩溃,所以您应该使用onReceive方法中接收的相同上下文。 这只是一个猜测,我希望它可以帮助你。

相关问题