微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

Android:无法销毁活动

我正在使用以下代码删除每个视图组上的子代:
protected void onDestroy() {
    super.onDestroy();
    this.liberarMemoria();
}

public void liberarMemoria(){
     imagenes.recycleBitmaps(); 
     this.unbindDrawables(findViewById(R.id.RelativeLayout1));
     System.gc();
}
private void unbindDrawables(View view) {
    if (view.getBackground() != null) {
    view.getBackground().setCallback(null);
}
if (view instanceof ViewGroup) {
    for (int i = 0; i < ((ViewGroup) view).getChildCount(); i++) {
        unbindDrawables(((ViewGroup) view).getChildAt(i));
    }
    ((ViewGroup) view).removeAllViews();
    }
}

视图:R.id.RelativeLayout1是ListView.

但这样做我有例外:

E/AndroidRuntime(582): java.lang.RuntimeException: Unable to destroy activity {...}: java.lang.UnsupportedOperationException: removeAllViews() is not supported in AdapterView

我该如何解决

解决方法

那么错误日志几乎解释一下:不要在AdapterView上调用removeAllViews().而且您的代码在某种程度上符合ViewGroup,也是AdapterView.

只需使用instanceof检查或使用try / catch包装器处理异常即可.

原文地址:https://www.jb51.cc/android/312033.html

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐