2016-08-30 3 views
-4

Я хочу начать уведомление в текущей деятельности (ChatActivity), когда я касаюсь уведомления, я хочу ввести ChatOneActivity.Текущая активность завершена, когда я создаю уведомление

Однако я не хочу, чтобы текущая активность (ChatActivity) была завершена, когда я нахожусь в ChatOneActivity (потому что я получаю данные). И когда я нажимаю кнопку «Назад», я хочу остаться в 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

_Notification не может работать_ где код для этого? –

+0

@bub какой код? это просто не работает. – agilob

ответ

0

Я считаю, что вы не можете делать то, что хотите.

Прежде всего, взгляните на эту ссылку https://developer.android.com/guide/components/tasks-and-back-stack.html стоит прочитать.

enter image description here

Открывает ChatOneActivity от ChatActivity и он будет сохранен в задней стеке, Android система может убить вашу активность, когда требуется память, но она будет воссоздана.

Кроме того, вы добавляете ChatOneActivity в качестве родителя в задней стеке

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

Если вы находитесь в родительской активности и кнопка назад нажата, разумно, что приложение будет закрыто.

Если вы хотите открыть Activity2 из Activity1, и когда вы вернетесь назад, в Activity1 вам не придется ничего делать, Android Back Stack будет управлять поведением.

Смежные вопросы