我不能爲我的生活弄清楚爲什麼有時我的應用程序啓動,暫停和恢復後,我的碎片變得無法控制。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