2012-02-22 57 views
0

我有一个Android库,需要一个BroadcastReceiver,它在对象构造函数中注册。它根据不断变化的互联网状态对该对象执行操作。但是,我遇到了关于泄露的接收器的错误消息,因为我不称之为取消注册。从Android上的非活动取消注册BroadcastReceiver

当我没有关于活动何时结束的信息时,如何以及在哪里可以取消注册?由于我只提供将由一个Activity实例化的类,所以没有onPause,onClose方法。

回答

1

您可以尝试将您的接收器保存为静态。我认为如果你注册两次相同的接收器,只会得到这个错误。

如果失败了,也可以尝试调用context.getApplicationContext()。registerBroadcastReceiver()而不是使用活动上下文。

+0

使用context.getApplicationContext()做了诀窍。谢谢! – nicobatu 2012-02-22 20:07:31

0

您是否应该扩展Activity,使用Android的工作流程正常工作,然后让您的用户扩展您的活动?

这只是一个建议,但它肯定会解决您所描述的问题,因为您可以在onCreate()上注册接收器并在onDestroy()上取消注册。