我不能为我的生活弄清楚为什么有时我的应用程序启动,暂停和恢复后,我的碎片变得无法控制。ViewPager应用程序在后台时碎片被破坏?
我抱到我的片段引用这样的:
public class MainActivity ... {
public static AccountFragment accountFragment;
....
@Override
protected void onCreate(... {
accountFragment = new AccountFragment(this);
...
}
我有一个微调自定义工具栏在理论上应该允许用户造成的AsyncTask在AccountFragment运行。实现此方法,像这样:
if (accountFragment.getView() != null) {
accountFragment.load()
}
然后创建一个ViewPager,一个FragmentPagerAdapter等
这工作完全罚款的大部分时间。用户可以在Spinner中选择一个新项目,AccountFragment会相应更新。但是,有时在应用程序停止并稍后恢复后,AccountFragment完全不会响应任何内容。甚至应该影响帐户片段的其他视图也没用。这对我来说没有任何意义,因为AccountFragment的视图不能为null,并且由accountFragment.load()执行的AsyncTask对onPreExecute中的UI进行了一些非常简单的更改,这应该非常明显(例如,Everything消失并显示ProgressBar )这根本就没有发生。
任何想法?
感谢您的全面回答! 1:好的,我会这样做的。 2:我的片段需要以某种方式参考我的MainActivity。那该怎么办呢? 3:如果onCreate正在重新创建或正在创建,我将如何判断?如果我发现它正在被重新创建,我会做些什么改变? – zholmes1 2014-10-22 17:03:50
你的片段有getActivity()方法。您可以将返回的活动转换为MainActivity。关于娱乐:如果onCreate()方法中的savedInstanceState为空,那么通常意味着该Activity是新创建的。如果它不为空,则重新创建。 – 2014-10-22 17:30:09
你是否认为可能围绕我的实例化我的片段与以下如果块可能工作?if(savedInstanceState == null){//实例化片段} – zholmes1 2014-10-24 07:40:51