android – Wenn sich das Telefon im Quer- oder Hochformat befindet, ist die Instanz im Fragment, z. B. das Recyclerview-Objekt, null und der Rückruf bei der Rückgabe von Daten im Hintergrund führt zu einer Nullzeigerausnahme.
阿神
阿神 2017-05-31 10:38:57
0
2
1159

Wenn das Mobiltelefon zwischen horizontalen und vertikalen Bildschirmen wechselt, geht der Fragmentstatus verloren, was dazu führt, dass eine Nullzeigerausnahme gemeldet wird, wenn der vom Unterthread angeforderte Datenrückruf angezeigt wird. So lösen Sie das Problem

阿神
阿神

闭关修行中......

Antworte allen(2)
巴扎黑

感觉像是转屏触发了重绘,在Manifast里面给当前Activity添加如下属性试试:
android:configChanges="orientation|screenSize"

为情所困

不论是旋转屏幕还是关闭Activity, 都应该在Fragment#onDestroy()或者Fragment#onDestroyView()时, 取消网络接口的响应监听. 否则即便是通过设置android:configChanges解决屏幕旋转时Activity重建导致App崩溃的问题, 其他场景也还是有几率让App崩溃

建议阅读下Android源码去了解下以下几个知识点:

  1. Activity是如何管理Fragment

  2. Fragment是如何管理View

  3. Activity & Fragment是如何管理Loader

另外推荐使用 Retrofit + RxAndroid + RxLifecycle 来实现网络接口以及调用. 页面数据管理可以考虑Loader.

Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage