8

以下のように、アクティビティ onCreate() でリストを初期化します。

private List<MyItem> filtered;
@Override
   protected void onCreate(@Nullable Bundle savedInstanceState) {
      super.onCreate(savedInstanceState);
      setContentView(R.layout.activity_dashboard);
      filtered = new ArrayList<>();

      // more things
}

そして、onNewIntent からフィルター処理されたアイテムを使用しようとすると、null ポインター例外が発生することがあります。

 @Override
   protected void onNewIntent(Intent intent) {
      super.onNewIntent(intent);
      filtered.clear();
   }

どうしてそれが可能でしょうか?

編集:私のアクティビティのlaunchmodeはSingleTaskです

編集2:

このクラッシュは本番環境にあるため、これ以上有用なログを送信できません。私だけがいくつかのファブリック ログを取得します。

ご協力いただきありがとうございますが、プライバシーのためにコード全体を貼り付けることはできません。

SingleTask-OnCreate-OnNewIntent の使用に問題があると思います。単純に、ユーザーがアクティビティに移動したときに開くフラグメントを決定するパラメーターを使用して、通知からアプリを開こうとしています。

SingleTask-OnCreate-OnNewIntent の実装を含むこれに関する例はありますか?

助けてくれてありがとう。

4

3 に答える 3

0

メソッドを取得NullPointerExceptionしている場合onNewIntent()、おそらくfilteredオブジェクトは null です。

この方法を試してください

@Override
protected void onNewIntent(Intent intent) {

   //Check for null value and then proceed. 
   if(filtered != null)
      filtered.clear();
} 
于 2015-09-24T09:19:12.827 に答える