设置活动泄漏了IntentReceiver-缺少unregisterReceiver()吗?

时间:2019-02-02 13:53:10

标签: c# android android-activity xamarin.android

在我的android应用中,用户转到Notification Access设置以启用NotificationListenerService。这是通过一个简单的按钮完成的,单击该按钮即可启动新活动:

var intent = new Intent();
intent.SetAction(Android.Provider.Settings.ActionNotificationListenerSettings);
intent.SetFlags(ActivityFlags.NewTask);

MainActivity.Instance.StartActivity(intent);

到目前为止,一切都很好。当用户按下设备上的返回按钮以返回到应用程序时,就会出现问题。此时,我在日志中看到一个IntentReceiverLeaked错误:

ActivityThread  android.app.IntentReceiverLeaked: Activity com.android.settings.Settings$NotificationAccessSettingsActivity
has leaked IntentReceiver com.android.settings.accounts.AuthenticatorHelper@f52224
that was originally registered here. Are you missing a call to unregisterReceiver()?
at android.app.LoadedApk$ReceiverDispatcher.<init>(LoadedApk.java:1030)
at etc...

我发现了许多有关注销广播接收器的答案,例如活动暂停后。问题是我没有创建NotificationAccessSettingsActivity,所以我认为我无法为该操作注销接收者。

值得注意的是,如果我按下主页按钮,然后返回到我的应用程序,则日志中不会出现错误。

如何解决此错误?

0 个答案:

没有答案