升级到Android 4.2.2后出现奇怪错误-活动泄露了IntentReceiver



我昨晚将三星Galaxy Tab 2升级到了Android 4.2.2,之后在LogCat中发现了一些奇怪的错误,这些错误在我"升级"之前没有出现。

我希望它能突出显示我的应用程序中隐藏的错误或内存泄漏,但我什么也找不到。

似乎只有当我所在的活动具有Spinner,并且Spinner已展开时,才会发生这种情况。

错误如下。

Activity uk.co.xxxx.xxxx has leaked IntentReceiver com.immersion.android.haptics.HapticFeedbackManager$HapticFeedbackBroadcastReceiver@41e4bac0 that was originally registered here. Are you missing a call to unregisterReceiver()?

其他人看到了吗?你认为忽略它安全吗,因为它只发生在我的一台设备上?

---编辑---

顺便说一句,我没有在任何地方注册任何接收器,所以没有什么可以注销的。

我也有类似的问题,我在Haptic开发者论坛上提出了这个问题,并收到了以下回复:

您看到的异常是无害的警告,操作系统会小心处理释放异常中提到的资源。换句话说,无需担心或做任何事情。

如果您需要任何其他详细信息,请访问此处

根据堆栈跟踪,我认为您的"活动"(此处屏蔽)注册了一个未正确发布的HapticFeedbackBroadcastReceiver。这通常是在onPause()生命周期挂钩中完成的,因此当您暂停或关闭Activity时会调用它。

示例代码:

@Override 
protected void onPause() {
    super.onPause();
    if(broadcastReceiverInstance != null){
        unregisterReceiver(broadcastReceiverInstance);
    }
}

如果你自己还没有注册任何接收器也许系统基于弹出的键盘,所以最好隐藏键盘或应用程序中使用的任何其他可能激活触觉反馈的元素。想想自定义键盘、自定义视图。。。任何东西为了更详细地检查这一点,我们需要更多的代码。

最新更新