微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

java – ChooserActivity泄露了IntentReceiver

E/ActivityThread(  655): Activity com.android.internal.app.ChooserActivity has
leaked IntentReceiver com.android.internal.app.ResolverActivity$1@412f4f38 
that was originally registered here. 

Are you missing a call to unregisterReceiver()? E/ActivityThread(  655): 
android.app.IntentReceiverLeaked: 
Activity com.android.internal.app.ChooserActivity has leaked IntentReceiver 
com.android.internal.app.ResolverActivity$1@412f4f38 that was originally 
registered here. Are you missing a call to unregisterReceiver()?

>这个错误是什么意思?
>既然应用程序继续工作,我应该忽略它吗?
>我该如何解决

当我在发布here的例程后从手机图库中选择图像时,会发生这种情况.
正是当我按下活动布局中定义的浏览图库按钮时.

完整的LOGCAT:

E/ActivityThread(  655):    at android.app.LoadedApk$Receiverdispatcher.<init>(LoadedApk.java:763)
E/ActivityThread(  655):    at android.app.LoadedApk.getReceiverdispatcher(LoadedApk.java:567)
E/ActivityThread(  655):    at android.app.ContextImpl.registerReceiverInternal(ContextImpl.java:1043)
E/ActivityThread(  655):    at android.app.ContextImpl.registerReceiver(ContextImpl.java:1030)
E/ActivityThread(  655):    at android.app.ContextImpl.registerReceiver(ContextImpl.java:1024)
E/ActivityThread(  655):    at android.content.Contextwrapper.registerReceiver(Contextwrapper.java:341)
E/ActivityThread(  655):    at com.android.internal.content.PackageMonitor.register(PackageMonitor.java:65)
E/ActivityThread(  655):    at com.android.internal.app.ResolverActivity.onCreate(ResolverActivity.java:99)
E/ActivityThread(  655):    at com.android.internal.app.ChooserActivity.onCreate(ChooserActivity.java:53)
E/ActivityThread(  655):    at android.app.Activity.performCreate(Activity.java:4465)
E/ActivityThread(  655):    at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1049)
E/ActivityThread(  655):    at android.app.ActivityThread.performlaunchActivity(ActivityThread.java:1920)
E/ActivityThread(  655):    at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:1981)
E/ActivityThread(  655):    at android.app.ActivityThread.access$600(ActivityThread.java:123)
E/ActivityThread(  655):    at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1147)
E/ActivityThread(  655):    at android.os.Handler.dispatchMessage(Handler.java:99)
E/ActivityThread(  655):    at android.os.Looper.loop(Looper.java:137)
E/ActivityThread(  655):    at android.app.ActivityThread.main(ActivityThread.java:4424)
E/ActivityThread(  655):    at java.lang.reflect.Method.invokeNative(Native Method)
E/ActivityThread(  655):    at java.lang.reflect.Method.invoke(Method.java:511)
E/ActivityThread(  655):    at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:784)
E/ActivityThread(  655):    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:551)
E/ActivityThread(  655):    at dalvik.system.NativeStart.main(Native Method)

解决方法:

我知道这个比较老了,但是我遇到了同样的问题,并且认为我偶然发现了事故的答案,尽管这很奇怪.

在模拟器中,如果您执行某些操作以导致应用程序选择器(例如共享意图)或选择图库应用程序,则只有一个应用程序并且在您不选择应用程序的情况下自动加载应用程序时,它似乎只有一个例外.

例如,您要选择图像.如果您运行例程来选择图像,您很可能会在手机的选择器对话框中显示一些选项.但是在模拟器上,除了认的gallery应用程序之外,您很少有其他任何东西.

如果只有一个应用程序加载,则会出现异常.

如果您有多个应用程序可供选择,您将不会遇到异常.

如果要共享文本文件,也会发生同样的情况.在模拟器上,文本文件自动直接加载Messaging应用程序,您将获得异常.

如果您设置了电子邮件应用程序,它将在选择器中显示两个应用程序.你没有例外.

我相信你可以安全地忽略它,因为它似乎是一个内部错误消息.

您可以尝试通过安装第二个库应用程序来重现这一点,以查看它没有创建错误消息.

我刚注意到这也描述了相同的建议https://stackoverflow.com/a/10290486/935779

如果你真的想要避免这种异常,它有一个更复杂的工作.

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐