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

时间:2013-08-19 23:43:52

标签: java android memory-leaks

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

我希望它突出显示我的应用程序中隐藏的错误或内存泄漏,但我找不到任何东西。

似乎只有当我所在的活动有SpinnerSpinner已展开时才会出现。

错误如下。

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()?

有没有人见过这个?您是否认为可以忽略它,因为它只发生在我的某个设备上?

---编辑---

而且,顺便说一句,我没有在任何地方注册任何接收器,所以没有注销。

2 个答案:

答案 0 :(得分:9)

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

  

您看到的例外是无害的警告,操作系统会照顾   释放异常中提到的资源。换一种说法,   无需担心或做任何事情。

如果您需要任何其他详细信息,请go here

答案 1 :(得分:0)

从堆栈跟踪中我会说你的Activity(在这里屏蔽)注册了一个未正确发布的HapticFeedbackBroadcastReceiver。这通常在onPause()生命周期钩子中完成,以便在您暂停或关闭Activity时调用它。

示例代码:

@Override 
protected void onPause() {

    super.onPause();
    if(broadcastReceiverInstance != null){
        unregisterReceiver(broadcastReceiverInstance);
    }
}

如果您没有自己注册任何接收器,系统可能会弹出一个键盘,因此隐藏键盘或应用中可能使用的任何其他元素可能是个好主意。激活了触觉反馈。想想自定义键盘,自定义视图,......任何东西。要更详细地检查,我们需要更多代码。