В этом сценарии мое приложение для Android помещается в фоновом режиме пользователем, нажимая кнопку «Домой», отвечает на входящий звонок, записывает уведомление и т. Д. Таким образом, они смотрят на Facebook, играют в Asphalt 8, что угодно что заставит Android OS найти, что ей нужно больше памяти и убейте мое приложение для Android. Пользователь решает, что они хотят оглянуться на мое приложение, нажмите значок и BOINK!Коррумпированный Android savedInstanceState
Когда приложение запускается после того, как оно было убито операционной системой, основная активность передается с сохраненнымInstanceState, который содержит два ключа: android: viewHierarchyState и android: поддержка: фрагменты. Это 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)
....
Таким образом, операционная система использует данные, которые он написал в savedInstanceState, когда он убил приложение, но по какой-то причине, он поврежден, когда приложение использует его для создания себя при запуске.
Я попытался сделать это в рамках деятельности NavigationPage:
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(null)
}
Который работает для мобильных запуска приложений, но если ваше мобильное приложение переходит в фоновом режиме и нажмите на значок, вы ожидаете, что пойти вернуться туда, где вы остановились. Передача null приводит к тому, что приложение проходит через весь процесс создания/загрузки на экране, что требует много времени, а не пользовательский интерфейс, который нам нужен.
Любые мысли о том, что может произойти или как я мог избежать этой ситуации?
Извините, я должен был упомянуть, что я посмотрел на этот вопрос, и в моей навигационной странице код: super.onCreate (savedInstanceState); setContentView (R.layout.navigation); –
Я также посмотрел на это сообщение без радости: http://stackoverflow.com/questions/19874882/android-view-inflateexception-binary-xml-file-error-inflating-class-fragment –
как насчет метода 'onSaveInstanceState' ? возможно, это также сохраняет нуль? – Jhoon