相关疑难解决方法(0)

Android:launchMode ="singleTask"中的错误? - >活动堆栈未保留

我的主要活动A已经android:launchMode="singleTask"在清单中设置了.现在,每当我从那里开始另一个活动,例如B并按下HOME BUTTON手机上的电话返回到主屏幕,然后再次返回我的应用程序,可以通过按应用程序的按钮或按下HOME BUTTON长按来显示我最近的应用程序不保留我的活动堆栈并直接返回A而不是预期的活动B.

这里有两个行为:

Expected: A > B > HOME > B
Actual: A > B > HOME > A (bad!)
Run Code Online (Sandbox Code Playgroud)

有没有我缺少的设置或这是一个错误?如果是后者,在修复错误之前是否有解决方法?

仅供参考:这个问题已经在这里讨论过.但是,似乎没有任何真正的解决方案.

android activity-stack

63
推荐指数
4
解决办法
3万
查看次数

FLAG_ACTIVITY_RESET_TASK_IF_NEEDED和FLAG_ACTIVITY_CLEAR_TOP之间有什么区别?FLAG_ACTIVITY_SINGLE_TOP?

我正在(最后)编写关于我书的任务的章节,我遇到了一些挥之不去的谜题.

作为主屏幕发射器的东西似乎使用FLAG_ACTIVITY_NEW_TASKFLAG_ACTIVITY_RESET_TASK_IF_NEEDED启动请求的启动器活动时的组合:

Intent i=new Intent(Intent.ACTION_MAIN);

i.addCategory(Intent.CATEGORY_LAUNCHER);
i.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK |
            Intent.FLAG_ACTIVITY_RESET_TASK_IF_NEEDED);
i.setComponent(name);

startActivity(i);  
Run Code Online (Sandbox Code Playgroud)

文档FLAG_ACTIVITY_RESET_TASK_IF_NEEDED包含:

如果设置,并且此活动要么在新任务中启动,要么将现有任务置于顶部,那么它将作为任务的前门启动.这将导致应用任务所需的任何关联性,以使该任务处于适当的状态(将活动移入或移出),或者仅在需要时将该任务重置为其初始状态.

那不是特别清楚.

特别是,它似乎是相同的效果将使用的组合可以看出FLAG_ACTIVITY_CLEAR_TOPFLAG_ACTIVITY_SINGLE_TOP.引用文档FLAG_ACTIVITY_CLEAR_TOP:

如果已设置,并且正在启动的活动已在当前任务中运行,则不会启动该活动的新实例,而是将关闭其上的所有其他活动,并将此Intent传递给(现在开启) top)旧活动作为一个新的意图......

当前运行的[所需活动]实例将在其onNewIntent()方法中接收您从此处开始的新意图,或者本身已完成并使用新意图重新启动.如果它已将其启动模式声明为"多个"(默认值)并且您没有在同一意图中设置FLAG_ACTIVITY_SINGLE_TOP,那么它将被完成并重新创建; 对于所有其他启动模式或如果设置了FLAG_ACTIVITY_SINGLE_TOP,则此Intent将被传递到当前实例的onNewIntent().

FLAG_ACTIVITY_CLEAR_TOP文档是有道理的,至少对我来说.

那么,这FLAG_ACTIVITY_RESET_TASK_IF_NEEDEDFLAG_ACTIVITY_CLEAR_TOPand 的组合FLAG_ACTIVITY_SINGLE_TOP有何不同?


如果您可以解释FLAG_ACTIVITY_CLEAR_TASK与上述其他两个选项中的任何一个不同的加分点.

如果在传递给Context.startActivity()的Intent中设置,则此标志将导致在活动开始之前清除与活动关联的任何现有任务.也就是说,活动成为否则为空任务的新根,并且任何旧活动都已完成.这只能与FLAG_ACTIVITY_NEW_TASK一起使用.

这和FLAG_ACTIVITY_CLEAR_TOP| 之间有一个明显的区别 FLAG_ACTIVITY_SINGLE_TOPFLAG_ACTIVITY_CLEAR_TASK需要的FLAG_ACTIVITY_NEW_TASK.但是,除此之外,看起来净效果是相同的,也是匹配的FLAG_ACTIVITY_RESET_TASK_IF_NEEDED.

android android-intent

31
推荐指数
1
解决办法
2万
查看次数

Android启动模式的示例

我发现很难理解在Android中使用各种启动模式的确切情况.任何人都可以提供一些例子来帮助理解各种模式何时适合?

android

22
推荐指数
2
解决办法
1万
查看次数

标签 统计

android ×3

activity-stack ×1

android-intent ×1