返回上一个未按预期工作的活动

时间:2015-11-07 16:48:59

标签: android

所以我有一个打开活动的通知:

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开发的新手,如果可能的话,请简单说明:)

2 个答案:

答案 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我不应该使用堆栈构建器。堆栈构建器将包含已启动活动的人工后台堆栈。这可确保从“活动”向后导航导出应用程序到主屏幕。这不是我想要实现的目标。