情景是這樣的,我的Android應用程序被放置在後臺,用戶點擊主頁按鈕,接聽來電,點擊通知等。所以,他們看Facebook,玩Asphalt 8,任何東西這會導致Android操作系統發現它需要更多內存並殺死我的Android應用程序。用戶決定他們想回顧我的應用,點擊圖標和BOINK!損壞的Android savedInstanceState
當應用程序被操作系統殺死後啓動時,主Activity將傳遞一個savedInstanceState,其中包含兩個鍵:android:viewHierarchyState和android:support:fragments。這savedInstanceState傳遞給片段和崩潰,說明該片段沒有創建一個視圖:
Caused by: java.lang.IllegalStateException: Fragment com.foo.SomeFragment did not create a view.
at android.support.v4.app.FragmentManagerImpl.onCreateView(FragmentManager.java:2200)
at android.support.v4.app.FragmentActivity.onCreateView(FragmentActivity.java:300)
at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:727)
at android.view.LayoutInflater.rInflate(LayoutInflater.java:806)
at android.view.LayoutInflater.inflate(LayoutInflater.java:504)
at android.view.LayoutInflater.inflate(LayoutInflater.java:414)
at android.view.LayoutInflater.inflate(LayoutInflater.java:365)
at com.android.internal.policy.impl.PhoneWindow.setContentView(PhoneWindow.java:404)
at android.app.Activity.setContentView(Activity.java:2156)
at com.foo.NavigationPage.onCreate(NavigationPage.java:774)
at android.app.Activity.performCreate(Activity.java:5958)
at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1129)
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2364)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2474)
at android.app.ActivityThread.access$800(ActivityThread.java:144)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1359)
....
因此,使用數據的OS它寫了的savedInstanceState當它殺了應用程序,但由於某些原因,它在應用程序使用它在啓動時自行創建時已損壞。
我曾嘗試NavigationPage活動中這樣做:
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(null)
}
這對於移動應用程序啓動時,如果您的移動應用進入後臺,你點擊圖標,你希望它去回來這裏工作,但你離開了。傳遞null導致應用程序遍歷其所有的屏幕構建/加載過程,這是耗時的,而不是我們想要的用戶體驗。
關於可能發生什麼或我該如何避免這種情況的想法?
對不起,我應該提到我看過這個問題,並在我的NavigationPage中,代碼是:super.onCreate(savedInstanceState); setContentView(R.layout.navigation); –
我也沒有喜悅地看着這篇文章:http://stackoverflow.com/questions/19874882/android-view-inflateexception-binary-xml-file-error-inflating-class-fragment –
'onSaveInstanceState'方法怎麼樣?也許它也保存一個null? – Jhoon