我想在当前活动(ChatActivity)中启动通知,当我触摸通知时,我想进入ChatOneActivity。
但是当我在ChatOneActivity时,我不希望当前的Activity(ChatActivity)完成(因为我正在接收数据)。当我按下后退按钮时,我想留在ChatActivity中。< / p>
(关键是我不希望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已经完成,我不想要
答案 0 :(得分:0)
我相信你不能做你想做的事。
首先,请查看此链接https://developer.android.com/guide/components/tasks-and-back-stack.html值得一读。
您正在从ChatActivity打开ChatOneActivity并将其保存在Back Stack中,Android系统可以在需要内存时终止您的活动,但会重新创建。
此外,您将ChatOneActivity添加为后台堆栈中的父级
TaskStackBuilder stackBuilder = TaskStackBuilder.create(ChatActivity.this);
stackBuilder.addParentStack(ChatOneActivity.class);
如果您在父活动中并且按下了后退按钮,则应用程序将关闭是合理的。
如果你想从Activity1打开Activity2,当你按下返回到Activity1时,你不必做任何事情,Android Back Stack将管理行为。