Activity泄露了IntentReceiver android.widget.ViewFlipper

Cod*_*oet 6 android

我正在添加一个ViewFlipper从布局资源膨胀到ListView一个Footer.这是我的鳍状肢布局(为简洁起见,省略了详细信息):

<?xml version="1.0" encoding="utf-8"?>
<ViewFlipper ...>
    <Button
        />
    <LinearLayout 
        ... >
        <ProgressBar 
           ... />
        <TextView
            ... />
    </LinearLayout>
</ViewFlipper>
Run Code Online (Sandbox Code Playgroud)

我使用以下命令将其添加到ListView:

mListView.addFooterView(mLoadMoreFlipper);
Run Code Online (Sandbox Code Playgroud)

当我的活动被销毁时,我在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()?
Run Code Online (Sandbox Code Playgroud)

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

mListView.removeFooterView(mLoadMoreFlipper);
Run Code Online (Sandbox Code Playgroud)

我已经使用尝试WeakReferenceViewFlipper,但这样做没有帮助.我也试过设置mLoadMoreFlipper引用,null但这也无济于事.

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

Cod*_*oet 1

请参阅View Flipper 在 ViewFlipper.onDetachedFromWindow 中引发异常。显然 ViewFlipper 存在错误。其中包含解决方法。