【发布时间】:2015-08-04 23:07:40
【问题描述】:
尝试在 Android 应用程序中管理任务和返回堆栈。
我在其中使用了一个滑动菜单,我可以从中启动不同的活动:Activity1、Activity2...(每个活动中的菜单都相似)。
MainActivity 是一个启动器。
我可以在这些活动之间导航,当我按下后退按钮时,我必须总是回到 MainActivity。
这就是我从没有历史记录的菜单开始活动的原因:
Intent i1 = new Intent(getApplicationContext(), Activity1.class);
i1.setFlags(Intent.FLAG_ACTIVITY_NO_HISTORY);
startActivity(i1);
问题是从 Activity1 我也可以开始一个我必须保留历史记录的意图:
Intent callIntent = new Intent(Intent.ACTION_DIAL);
callIntent.setData(Uri.parse("tel:1234567890"));
startActivity(callIntent);
拨号后我想回到Activity1,但正如你现在看到的,我又回到了MainActivity(因为没有历史记录)。
我也尝试用历史开始新的活动并完成以前的活动:
Intent i1 = new Intent(getApplicationContext(), Activity1.class);
finish();
startActivity(i1);
这里一切正常,拨号意图(我不会在拨号前完成 Activity1),但每当我按下后退按钮时,我都会退出应用程序。
试图在图片上表达想法
还尝试在 manifest 中使用 noHistory,但没有成功。
在从没有历史记录的活动中开始拨号意图之前,我可以返回历史记录(带有 wlags 或 extras)吗?
如何解决?
【问题讨论】:
标签: android android-intent back-stack