android 返回上一个活动,但未按预期工作

hmae6n7t  于 2023-09-28  发布在  Android
关注(0)|答案(3)|浏览(102)

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

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());

我做的活动是一个简单的对话框风格的活动。当我从通知抽屉中打开Activity时,在任何其他应用程序之上,如Facebook,WhatsApp,Chrome浏览器等,Activity按预期打开。问题是当我试图关闭它,并返回到以前的应用程序。
当我点击后退按钮,关闭我的对话框风格的活动,我直接回到手机的主屏幕,而不是回到以前的应用程序。为什么?为什么?
当我点击我在对话框中创建的“关闭”按钮时:

close.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                SecondClass.this.finish();

            }
        });

同样的事情发生了:该活动已完成,但我要返回到主屏幕,而不是上一个应用程序.为什么?2?

  • 注意:即使在我完成活动后,以前的应用程序仍在后台工作。

在搜索解决方案时,我发现了此链接:How to open dialog styled activity from notification without previous activity closing?
但没有给出解决方案。
P.S.我是Android开发的新手,如果可能的话,请简单点:)

9q78igpj

9q78igpj1#

你看起来像遇到同样的问题常规活动&特殊活动通知'行动,任何我的答案在这里:通知按钮后返回原始活动

zwghvu4y

zwghvu4y2#

经过长时间的搜索,我在这个链接找到了解决方案:Go back to previous screen on backbutton pressed after responding to notification
我的代码中有两个问题。首先,正如在链接中所解释的,我没有使用.addFlags(Intent.FLAG_ACTIVITY_MULTIPLE_TASK);
第二,根据:http://www.tutorialspoint.com/android/android_notifications.htm我不应该使用堆栈构建器。堆栈构建器将包含已启动Activity的人工回栈。这确保了从Activity向后导航会引出应用程序到主屏幕。这不是我想要的结果。

zf2sa74q

zf2sa74q3#

我在使用堆栈构建器时遇到了同样的问题,在我的情况下,它被修复了:

更换

PendingIntent.FLAG_UPDATE_CURRENT or FLAG_IMMUTABLE


PendingIntent.FLAG_UPDATE_CURRENT or FLAG_MUTABLE

相关问题