インテントフィルタを指定して特定の種類のファイルを処理するシングルタスクモードのアクティビティを使用しています。 このようなファイルIntentをそれぞれ1回だけ処理する必要があります。 onNewIntent()は、タスクがすでに生きている場合にのみ呼び出され、onCreate()からインテントを処理するように強制されます。残念ながら、onCreate()はさまざまな理由で呼び出され(たとえば画面の回転)、getIntent()によって返されるインテントは複数のonCreate()で同じものになることがあります。 もちろん、いくつかの醜いハックを使ってこれを回避することは可能ですが、私は洗練された解決方法が何であるか疑問に思っていました。 私が思いついた最善の解決策は、インテントを処理したたびにsetIntent(新しいインテント(Intent.ACTION_MAIN))することです。これは、リフレッシュの結果として操作をやり直すのを避けるために、WebページがPOSTページの後にGETページにリダイレクトする方法と同様のパターンです。singleTaskを使用しているときに各インテントを一度に渡す方法
ありがとうございます!
はまったく同じ効果を達成するようです。これは正しい方法ですか? – Ytai
このメソッドを使用しないでください。時々動作しないことがあります。 Googleがより適切なソリューションを提供するために、私は100%何がいつも動いているのか、まだatmをテストしているのか分かりません。 – n3XusSLO