Activity泄露了IntentReceiver android.widget.ViewFlipper

时间:2012-01-02 12:49:21

标签: android

我将从布局资源中充值的ViewFlipper添加到ListView作为Footer。这是我的鳍状肢布局(为简洁起见省略了细节):

<?xml version="1.0" encoding="utf-8"?>
<ViewFlipper ...>
    <Button
        />
    <LinearLayout 
        ... >
        <ProgressBar 
           ... />
        <TextView
            ... />
    </LinearLayout>
</ViewFlipper>

我使用以下方法将其添加到我的ListView中:

mListView.addFooterView(mLoadMoreFlipper);

当我的活动被销毁时,我在LogCat中看到以下消息,后跟一个调用堆栈:

 Activity com.gk.ItemListActivity has leaked IntentReceiver android.widget.ViewFlipper$1@44c84ab0 
 that was originally registered here. Are you missing a call to unregisterReceiver()?

我做了一些挖掘,发现消息与不注销接收器有关,除了我没有注册任何。奇怪的是,如果在销毁之前已从ViewFlipper删除了页脚ListView(通过使用后退按钮),则仅显示此消息。当我不再需要它时,我会使用以下内容分离页脚:

mListView.removeFooterView(mLoadMoreFlipper);

我尝试使用WeakReference ViewFlipper,但这没有帮助。我也尝试将mLoadMoreFlipper引用设置为null,但这也无济于事。

以前有人遇到过这个问题吗?这似乎与我在ViewFlipper分离后引用ListView的活动有关,但我不知道如何明确销毁ViewFlipper

1 个答案:

答案 0 :(得分:1)

View Flipper Throws Exception in ViewFlipper.onDetachedFromWindow。显然,ViewFlipper中存在一个错误。包含解决方法。