2013-04-10 89 views
1

在主要活动在onCreate方法我注册broadcastReciver但在关闭应用程序,我总是得到这个错误:当我关闭应用程序,我不想注销接收器关闭Android应用程序破坏广播接收机

@429d47e0 that was originally registered here. Are you missing a call to unregisterReceiver()? 
04-10 23:40:48.161: E/ActivityThread(20989): at android.app.LoadedApk$ReceiverDispatcher.<init>(LoadedApk.java:793) 
04-10 23:40:48.161: E/ActivityThread(20989): at android.app.LoadedApk.getReceiverDispatcher(LoadedApk.java:593) 
04-10 23:40:48.161: E/ActivityThread(20989): at android.app.ContextImpl.registerReceiverInternal(ContextImpl.java:1274) 
04-10 23:40:48.161: E/ActivityThread(20989): at android.app.ContextImpl.registerReceiver(ContextImpl.java:1261) 
04-10 23:40:48.161: E/ActivityThread(20989): at android.app.ContextImpl.registerReceiver(ContextImpl.java:1255) 
04-10 23:40:48.161: E/ActivityThread(20989): at android.content.ContextWrapper.registerReceiver(ContextWrapper.java:372) 

。我能做什么?我以编程方式注册接收者。

+0

你甚至听过什么? – 2013-04-10 21:51:33

+0

这是不是自解释? – 2013-04-10 21:51:49

+0

@ pietmau它是?所以告诉我 – 2013-04-10 21:53:46

回答

4

when I close application I don't want to unregister receiver

然后,您不应该通过registerReceiver()注册它。改为通过<receiver>元素将其注册到清单中。然后,无论您的应用程序是否正在运行,它都可用。

+0

这是一种选择,但我想注册接收器,当我点击ON按钮,所以不是所有的时间。 – senzacionale 2013-04-11 04:35:50

+0

@senzacionale:您仍需要在清单中注册接收者。您可以使用'PackageManager'和'setComponentEnabledSetting()'来控制它是否处于活动状态,这取决于您按下按钮的时间。 – CommonsWare 2013-04-11 11:20:41