2016-08-30 13 views
-4

現在のアクティビティ(ChatActivity)で通知を開始したい場合、通知をタッチするとChatOneActivityに入りたいと思います。通知を作成すると現在のアクティビティが完了しました

私はChatOneActivity(データを受信して​​いるため)にいるときに現在のアクティビティ(ChatActivity)が終了しないようにします。また、戻るボタンを押すと、ChatActivityに滞在します。

(私の現在の活動に関係なく、私はChatActivityの終了を望んでいません)。

どうすればよいですか?私は戻るボタンを押したときにここで

コード

private void showNotification(String id, String message) { 
     NotificationCompat.Builder builder = new NotificationCompat.Builder(getApplicationContext()) 
     .setSmallIcon(android.R.drawable.sym_action_email) 
     .setContentTitle("You have a new message") 
     .setContentText(message); 
     Intent intent = new Intent(ChatActivity.this,ChatOneActivity.class); 
     intent.putExtra("toId", id); 
     TaskStackBuilder stackBuilder = TaskStackBuilder.create(ChatActivity.this); 
     stackBuilder.addParentStack(ChatOneActivity.class); 
     stackBuilder.addNextIntent(intent); 
     PendingIntent pendingIntent = stackBuilder.getPendingIntent(0, PendingIntent.FLAG_CANCEL_CURRENT); 
     builder.setContentIntent(pendingIntent); 
     NotificationManager mNotificationManager = 
       (NotificationManager) getSystemService(Context.NOTIFICATION_SERVICE); 
     mNotificationManager.notify(1, builder.build()); 
} 

は、今私はChatOneActivityを入力している、私はデスクトップに戻ります。私がしたくないChatActivityがすでに完了していることを意味します。

+1

最初にすべきことは、コードを表示することです。 –

+0

_通知は機能しません。そのコードはどこにありますか? –

+0

@bubどのようなコードですか?それはちょうど仕事を傾ける。 – agilob

答えて

0

私はあなたが望むことができないと信じています。

まず、このリンクhttps://developer.android.com/guide/components/tasks-and-back-stack.htmlを読む価値があります。

enter image description here

あなたはChatActivityからChatOneActivityを開いているし、それがバックスタックに保存されます、メモリが必要になったときのAndroidシステムがあなたの活動を殺すことができるが、それは再作成されます。

はまた、あなたが親アクティビティにあり、バックボタンを押すとバック​​スタック

TaskStackBuilder stackBuilder = TaskStackBuilder.create(ChatActivity.this); 
     stackBuilder.addParentStack(ChatOneActivity.class); 

に親としてChatOneActivityを追加して、アプリを閉じるということが合理的です。

アクティビティ1からアクティビティ2を開き、アクティビティ1に戻るときに何もする必要がない場合は、Androidバックスタックがその動作を管理します。

関連する問題