【发布时间】:2025-12-23 00:00:11
【问题描述】:
从我的onOptionsItemSelected() 实现中调用的以下 sn-p 可以很好地将用户从我的应用程序带到邮件客户端,并预先填写了电子邮件地址、主题和正文。我将此作为一种简单的方式让用户给我反馈。
String uriText =
"mailto:" + emailAddress +
"?subject=" + subject +
"&body=" + body;
Intent emailIntent = new Intent(Intent.ACTION_SENDTO, Uri.parse(uriText));
startActivity(Intent.createChooser(emailIntent, "Pick an email app:"));
当邮件应用程序打开时(在我的 Nexus S 上,Android 4.0.4),LogCat 输出以下内容,我不知道为什么; Google 和 SO 搜索 createChooser unregisterReceiver 似乎没有结果,而且我找不到很多 createChooser() 的例子,它们也以有助于这种情况的方式调用 unregisterReceiver()。
04-08 21:26:19.094: E/ActivityThread(27894): Activity com.android.internal.app.ChooserActivity 泄露了最初在此处注册的 IntentReceiver com.android.internal.app.ResolverActivity$1@4150aac8。您是否错过了对 unregisterReceiver() 的调用?
04-08 21:26:19.094: E/ActivityThread(27894): android.app.IntentReceiverLeaked: Activity com.android.internal.app.ChooserActivity 已泄露 IntentReceiver com.android.internal.app.ResolverActivity$1@4150aac8最初是在这里注册的。您是否错过了对 unregisterReceiver() 的调用?
04-08 21:26:19.094:E/ActivityThread(27894):在 android.app.LoadedApk$ReceiverDispatcher.(LoadedApk.java:763)
这感觉像是一个 Android 错误,因为我自己的代码没有调用 registerReceiver(),那么为什么 Android 抱怨我需要调用 unregisterReceiver()?
【问题讨论】:
-
我的 nexus 4.0.4 也有同样的问题
-
模拟器会出现这种情况吗?如果不是,this 可能是相关的。
标签: android android-intent broadcastreceiver