hereの動作を実装しようとしています。通知(または何でも)がアプリ内で「内部」アクティビティを開始し、ユーザーが押したときに移動します私の "家"活動。通知作成アクティビティからメインアクティビティに戻る
Androidのドキュメントは、[戻る]ボタンの場合は
を言うには、タスクの背中に挿入することによりナビゲーションがより 予測可能にする必要があり、アプリの一番上の画面への完全な 上向きのナビゲーションパスを積み重ねます。これにより、ユーザーが終了する前にアプリの 一番上の画面にナビゲートする方法を忘れてしまったユーザー が許可されます。
実際に行うには良い方法がありますか? Stackoverflowに関するその他の質問は、内部活動を開始するように指示する目的でメインアクティビティを開始することを提案していますが、GoogleがGmailで使用していたと思われる巨大なハッキングのように思えます。彼らは行動を主張している。
これは非ハックな方法ですか?
悲しいことに、これは私にとってはうまくいかないようです。私のMainActivityは、実際には再びナビゲーションスタックにプッシュされ、1回の通知で1回しか動作しません(私はそれらを自動ディスマップしません)。何か案は? – bompf
@bompf、これはおそらく 'PendingIntent.getActivities'で' PendingIntent.FLAG_ONE_SHOT'が使用されているためです。私は代わりに 'PendingIntent.FLAG_CANCEL_CURRENT'を提案します。 – Sam
ありがとうございます。 'TaskStackBuilder'はうまくいかなかったのに対し、これは私のために働いていました。しかし、あなたのコードは奇妙な状態になりました。ランチャー経由で 'MainActivity'を開いて、通知からアクションを開いた場合、' MainActivity'に戻るために戻るボタンを押した後、戻るボタンを押すと、 'MainActivity'を再度実行します。このように: '[MainActivity] [MainActivity] [ConversationActivity]'。 2行目のコードを 'backIntent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TASK)'に変更して修正しました。 – Sam