所以我有一个打开活动的通知:
public void showNotification(View v) {
NotificationCompat.Builder builder = new NotificationCompat.Builder(this);
builder.setSmallIcon(R.drawable.icon);
builder.setContentTitle("title text");
builder.setContentText("text");
builder.setOngoing(true);
Intent intent = new Intent(this, SecondClass.class);
TaskStackBuilder stackBuilder = TaskStackBuilder.create(this);
stackBuilder.addParentStack(SecondClass.class);
stackBuilder.addNextIntent(intent);
final PendingIntent pendingIntent = stackBuilder.getPendingIntent(0, PendingIntent.FLAG_UPDATE_CURRENT);
builder.setContentIntent(pendingIntent);
final NotificationManager NM = (NotificationManager) getSystemService(Context.NOTIFICATION_SERVICE);
NM.notify(0, builder.build());
我所做的活动是一个简单的对话框样式活动。当我从通知抽屉打开活动时,在任何其他应用程序(如facebook,whatsapp,chrome浏览器等)之上,活动按预期打开。 问题是我尝试关闭它,然后返回上一个应用程序。
当我点击后退按钮时,要关闭我的对话框样式活动,我会直接回到手机的主屏幕,而不是回到之前的应用程序。为什么呢?
当我点击"关闭"我在对话框中创建的按钮:
close.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
SecondClass.this.finish();
}
});
同样的事情发生了:活动结束了,但我回到主屏幕,而不是之前的应用程序。为什么??
*注意:即使在我完成活动之后,之前的应用仍在后台运行。
在搜索解决方案时,我发现此链接: How to open dialog styled activity from notification without previous activity closing?
但没有给出解决方案。
P.S。我是android开发的新手,如果可能的话,请简单说明:)
答案 0 :(得分:0)
你看起来像遇到同样的问题常规活动&通知行动的特殊活动,任何我的回答在这里:After notification button return to original activity
答案 1 :(得分:0)
经过长时间搜索后,我在此链接找到了解决方案: Go back to previous screen on backbutton pressed after responding to notification
显然我的代码中存在2个问题。首先,正如在链接中解释的那样,我没有使用.addFlags(Intent.FLAG_ACTIVITY_MULTIPLE_TASK);
其次,根据:http://www.tutorialspoint.com/android/android_notifications.htm我不应该使用堆栈构建器。堆栈构建器将包含已启动活动的人工后台堆栈。这可确保从“活动”向后导航导出应用程序到主屏幕。这不是我想要实现的目标。