Android Back按钮在从Intent

时间:2016-06-12 19:02:46

标签: android android-intent android-activity back

在我的申请中,我有3项活动:

  • MainActivity,这是启动应用时出现的主屏幕
  • SettingsActivity,从MainActivity
  • 开始
  • DownloadActivity,从SettingsActivity开始。

DownloadActivity列出了供用户下载的应用内容列表。实际下载由Android DownloadManager处理,它显示正在进行的下载的通知。点击该通知将触发一个意图,该意图将用户带到DownloadActivity

现在,如果我执行以下操作:

  1. 启动应用,转到SettingsActivity,然后转到DownloadActivity

  2. 开始下载,然后点击返回两次以返回MainActivity

  3. 下拉通知并点按下载nofification,这会将我带回DownloadActivity

  4. 回击。

  5. 重复步骤3和4两次。

  6. 我第一次执行第4步时,后退按钮会直接从DownloadActivity转到MainActivity - 应用程序在我点击通知之前显示的最后一个活动,这就是我想要的。< / p>

    然而,第二次,“后退”按钮会在当前的下方显示第二个DownloadActivity,我需要再次点击返回MainActivity

    第三次,有4个DownloadActivity个实例,需要按下Back按钮四次才能返回MainActivity

    处理点按的代码如下:

    Intent downloadIntent = new Intent(activity.getApplicationContext(), downloadActivity.class);
    downloadIntent.setFlags(Intent.FLAG_ACTIVITY_SINGLE_TOP | Intent.FLAG_ACTIVITY_NEW_TASK);
    activity.getApplicationContext().startActivity(downloadIntent);
    

    activity是对开始下载的活动的引用。)

    导致这种奇怪行为的原因是什么,以及如何使“后退”按钮始终返回应用程序显示的上一个活动?

1 个答案:

答案 0 :(得分:0)

事实证明这很简单。这种改变起到了作用:

- downloadIntent.setFlags(Intent.FLAG_ACTIVITY_SINGLE_TOP | Intent.FLAG_ACTIVITY_NEW_TASK);
+ downloadIntent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP | Intent.FLAG_ACTIVITY_NEW_TASK);