【发布时间】:2016-06-12 19:02:46
【问题描述】:
在我的应用程序中,我有 3 个活动:
-
MainActivity,这是启动应用程序时出现的主屏幕 -
SettingsActivity,从MainActivity开始 -
DownloadActivity,从SettingsActivity开始。
DownloadActivity 提供应用内内容列表供用户下载。实际下载由 Android 的 DownloadManager 处理,它会显示正在进行的下载通知。点击该通知会触发一个意图,将用户带到DownloadActivity。
现在,如果我执行以下操作:
启动应用程序,转到
SettingsActivity,从那里转到DownloadActivity。开始下载,然后按两次返回返回
MainActivity。下拉通知并点击下载通知,我会回到
DownloadActivity。反击。
重复步骤 3 和 4 两次。
第一次执行第 4 步时,“后退”按钮会将我直接从 DownloadActivity 带到 MainActivity——在我点击通知之前应用显示的最后一个活动,这正是我想要的。
然而,第二次后退按钮会在当前按钮下方显示第二个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 是对启动下载的活动的引用。)
是什么导致了这种奇怪的行为,我怎样才能让后退按钮总是返回到应用程序显示的最后一个活动?
【问题讨论】:
标签: android android-intent android-activity back