当前位置: 首页 > 知识库问答 >
问题:

如何解析未附加到活动的片段?[副本]

关宏毅
2023-03-14

代码:-

CustomerTicketDialogClass ctdc = new CustomerTicketDialogClass(getActivity(), 
            "network failure", 
            getResources().getString(R.string.NetworkError_Message), "LayoutTwo");
ctdc.show();
ctdc.setCanceledOnTouchOutside(false);

共有1个答案

孟璞
2023-03-14

此错误的发生是由于两个因素的综合影响:

HTTP请求完成后,调用onResponse()或onError()(在主线程上工作),而不知道活动是否仍在前台。如果活动消失了(用户导航到别处),getActivity()返回NULL。Volley响应表示为匿名的内部类,它隐式地持有对外部活动类的强引用。这会导致典型的内存泄漏。要解决此问题,您应该始终做到:

Activity activity = getActivity();

if(activity!=null){

// etc ...

}

此外,还可以在onError()方法中使用isAdded():

@Override
Activity activity = getActivity(); 
if(activity != null && isAdded())
    mProgressDialog.setVisibility(View.GONE);
    if (error instanceof NoConnectionError) {
       String errormsg = getResources().getString(R.string.no_internet_error_msg);
       Toast.makeText(activity, errormsg, Toast.LENGTH_LONG).show();
    }
}
 类似资料:
  • 代码如下:- 产品片段: 我不知道我错在哪里。我已经搜索了错误,甚至尝试了以下链接的解决方案: Fragment MyFragment not attached to activity 我在SO上提出问题,但没有得到响应/答案。可能有一个小错误、语法/格式问题或重复问题,但我的案例可能与其他人的不同。 因此,请提供帮助并作出答复。 谢谢。 --编辑-- 家庭活动: 致命异常:主进程:com.pis

  • 我有一个片段,基本上工作良好。在onResume方法中,当用户到达活动/片段时,我执行一个api调用以获取新的数据。 这个大部分时间都很好用。但是,当用户在update ui方法完成之前导航回父活动时,我遇到了一个问题。更新ui只是设置一些文本视图。 例如。当用户导航到活动和片段时,将调用上面的onResume。用户立即返回父活动。异步调用和更新ui尚未完成,我得到: 致命异常:主进程:com.p

  • 我的代码: 我添加了部分来模拟下载数据。中的代码是模拟使用。 当我在横向和纵向之间快速旋转屏幕时,我在代码处得到一个异常: java.lang.IllegalStateException:片段MyFragment{410F6060}未附加到活动 我认为这是因为在此期间创建了一个新的,并且在完成之前附加到了活动。中的代码调用未附加的。

  • 这是我的碎片 drawable是ok的,也检查了,数据库项目,崩溃发生有时不是每次数据库更改

  • 如果有人能帮我摆脱困境,请告诉我。多谢了。

  • 我正在创建一个使用FragmentStatePagerAdapter的ViewPager活动。但当我试图旋转我的手机时,它崩溃了,并出现错误“片段尚未附加”。 这是我的适配器: 在我的活动onCreate中,我调用了SalesPagingAdapter=new SalesPagingAdapter(PreMainActivitySales.this,getSupportFragmentManage