検索

ホームページ  >  に質問  >  本文

android - 携帯電話が横向きモードまたは縦向きモードの場合、recyclerview オブジェクトなどのフラグメント内のインスタンスは null であり、バックグラウンドでデータを返すときのコールバックによって null ポインター例外が発生します。

携帯電話が水平画面と垂直画面を切り替えると、フラグメント ステータスが失われ、子スレッドによって要求されたデータ コールバックが表示されるときに null ポインタ例外が報告されます。解決方法

阿神阿神2818日前1201

全員に返信(2)返信します

  • 巴扎黑

    巴扎黑2017-05-31 10:40:57

    画面を回すと再描画がトリガーされるような感じです。 Manifast の現在のアクティビティに次の属性を追加してみてください:
    android:configChanges="orientation|screenSize"

    返事
    0
  • 为情所困

    为情所困2017-05-31 10:40:57

    画面を回転するか閉じるかActivity, 都应该在Fragment#onDestroy()或者Fragment#onDestroyView()时, 取消网络接口的响应监听. 否则即便是通过设置android:configChanges解决屏幕旋转时Activityアプリのクラッシュの原因となった問題を再構築しても、他のシナリオではアプリがクラッシュする可能性があります

    次の知識ポイントを理解するために Android ソース コードを読むことをお勧めします:

    1. Activity是如何管理Fragment

    2. Fragment是如何管理View

    3. Activity & Fragment是如何管理Loader

    ネットワークインターフェイスと呼び出しを実装するには、Retrofit + RxAndroid + RxLifecycle を使用することも推奨されますLoader

    返事
    0
  • キャンセル返事