15

昨晚我将三星 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()?

有没有其他人看过这个?您认为忽略它是否安全,因为它只发生在我的一台设备上?

- - 编辑 - -

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

4

2 回答 2

9

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

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

如果您需要任何其他详细信息 -去这里

于 2013-11-11T09:51:03.710 回答
0

从堆栈跟踪中,我会说您的 Activity(此处屏蔽)注册了一个HapticFeedbackBroadcastReceiver未正确释放的。这通常在onPause()生命周期挂钩中完成,以便在您暂停或关闭Activity.

示例代码:

@Override 
protected void onPause() {

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

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

于 2013-11-08T15:30:30.420 回答