私はAndroid上で(ボタン付きの)通知を作成し、メインアクティビティでそのアクションを処理するために数日間試してきました。すべてはうまくいきますが、わからない問題があります。Android PendingIntentとメインアクティビティでそのアクションを処理する方法
アクティビティがPendingIntent
で開かれた場合、そのアクションが通知(getIntent().getAction().equals("action"))
のアクションであるかどうかを確認した後でダイアログが表示されます。
これまでのところ、ユーザーが最近のアプリをクリックしてアクティビティに戻ると、その操作は再び処理されます。
onCreate()
メソッドのチェックを試みましたが、マニフェストでアクティビティがnoHistory=true
とフラグされるたびに呼び出されています。
このため、アクティビティは毎回再作成されるので、ブール値フラグを使用してダイアログを1回だけ表示することはできません。私はPendingIntent
で放送を使うことを考えましたが、とにかく主な活動を開始する必要があります(これはビジネス上の必要条件です)。
noHistory
属性を削除しても、戻るボタンを押すとfinish()が呼び出され、アクティビティが破棄されますが、最近のアプリメニューから再実行できます。場所。
これを処理する方法についてのヒントを教えてください。アクションの検証方法はonCreate()
から呼び出され、noHistory
のために、またユーザーが戻るボタン(finish()
が呼び出されます)をクリックして、onCreate()
のためにアプリケーションがフォアグラウンドを離れるたびに呼び出されます次回、ユーザーが最近のメニューからフォアグランドにアプリを持って来るときに再び呼び出されます(アプリで必要なので、私はそれを無効にしてはいけません)。
さらに明確にするために、アプリがバックグラウンドになり、最近のアプリメニューから選択されるたび、または最近のアプリボタンがクリックされ、ユーザーが自分のアクティビティを選択するたびにダイアログが表示され続けるという問題があります。