2017-07-03 13 views
0

私はAndroid上で(ボタン付きの)通知を作成し、メインアクティビティでそのアクションを処理するために数日間試してきました。すべてはうまくいきますが、わからない問題があります。Android PendingIntentとメインアクティビティでそのアクションを処理する方法

アクティビティがPendingIntentで開かれた場合、そのアクションが通知(getIntent().getAction().equals("action"))のアクションであるかどうかを確認した後でダイアログが表示されます。

これまでのところ、ユーザーが最近のアプリをクリックしてアクティビティに戻ると、その操作は再び処理されます。

onCreate()メソッドのチェックを試みましたが、マニフェストでアクティビティがnoHistory=trueとフラグされるたびに呼び出されています。

このため、アクティビティは毎回再作成されるので、ブール値フラグを使用してダイアログを1回だけ表示することはできません。私はPendingIntentで放送を使うことを考えましたが、とにかく主な活動を開始する必要があります(これはビジネス上の必要条件です)。

noHistory属性を削除しても、戻るボタンを押すとfinish()が呼び出され、アクティビティが破棄されますが、最近のアプリメニューから再実行できます。場所。

これを処理する方法についてのヒントを教えてください。アクションの検証方法はonCreate()から呼び出され、noHistoryのために、またユーザーが戻るボタン(finish()が呼び出されます)をクリックして、onCreate()のためにアプリケーションがフォアグラウンドを離れるたびに呼び出されます次回、ユーザーが最近のメニューからフォアグランドにアプリを持って来るときに再び呼び出されます(アプリで必要なので、私はそれを無効にしてはいけません)。

さらに明確にするために、アプリがバックグラウンドになり、最近のアプリメニューから選択されるたび、または最近のアプリボタンがクリックされ、ユーザーが自分のアクティビティを選択するたびにダイアログが表示され続けるという問題があります。

答えて

0

私はそれを修正するためのエレガントな方法を見つけました。 ありがとうございます。