1

通知をクリックしたときに、「プリコンパイル済み」のアクティビティスタックを開始したいと考えています。私が試した:documentationよう提供されたバックスタックでアクティビティを開始する

Intent[] intents = new Intent[]{ 
     new Intent(this, ActivityA.class) 
     .addFlags(Intent.FLAG_ACTIVITY_NEW_TASK), 
     new Intent(this, ActivityB.class) 

PendingIntent pendingIntent = PendingIntent.getActivities(this, 0, intents, PendingIntent.FLAG_ONE_SHOT); 

NotificationCompat.Builder notificationBuilder = new NotificationCompat.Builder(this); 
notificationBuilder.setContentIntent(pendingIntent) 

は、私が最初の意図にNEW_TASKフラグを追加した、と言います。とにかく、通知をクリックすると、ActivityBが開始され、もう一度押すとスタックはなく(ActivityAなし)、アプリケーションは終了します。

+0

プリコンパイルされた一連のアクティビティを実行する目的を尋ねたいだけですか? – jzarsuelo

+0

アプリ内のユーザーの永続性を向上させます。 gmailやwhatsappのようなもの。特定のユーザーから通知を受け取ったら、詳細ページを入力しますが、戻るときに戻ると家に戻り、アプリケーション自体を閉じないでください。 – Jumpa

答えて

1

一方通行があります。

通知から - > ActivityAで

Intent intent = new Intent(context.this,ActivityA.class); 
intent.putExtra("isFromNotification",true); 

以下のようにActivityAにリダイレクト - >のonCreateメソッド - > setContentView後の()メソッドは、

boolean isFromNotification = getIntent().getBooleanExtra("isFromNotification",false); 
    if (isFromNotification){ 
     Intent intent = new Intent(ActivityA.this,ActivityB.class); 
     startActivity(intent); 
    } 

この行を書く注:何これが行うことは、それがありますActivityAをスタックに保持している間に、すぐにActivityBにリダイレクトされます。したがって、ユーザーが戻るボタンを押すと、ActivityAにリダイレクトされます。

+0

これは私のBプランでしたが、これを避けたいのですが、これは適切な(公式な)解決策の回避策に似ているようです。とにかく多くのありがとう。 – Jumpa

関連する問題