我将从布局资源中充值的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
。
答案 0 :(得分:1)
见View Flipper Throws Exception in ViewFlipper.onDetachedFromWindow。显然,ViewFlipper中存在一个错误。包含解决方法。