微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

如何从上下文之外结束 android 任务/关联?

如何解决如何从上下文之外结束 android 任务/关联?

我正在从上下文外部开始一个新活动,因此我需要使用新任务,如下所示:

Intent intent = new Intent(appContext,nextActivity);
intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP | Intent.FLAG_ACTIVITY_NEW_TASK);
appContext.startActivity(intent);

(这发生在独立的库模块中,因此解决方案并不像“只需将代码移动到活动”那样简单)。

上述意图非常适合开始新活动,问题是在此之前的当前活动仍保留在后台(现在成为任务) .

用户不应该从新任务返回到旧任务,那么我该如何销毁旧任务(以及它包含的一项活动)

我没有在当前/旧活动上使用 nohistory 的选项,因为有两个流程 - 一个让我们转到 新任务,另一个转到旧任务中的其他活动。

使用 FLAG_ACTIVITY_CLEAR_TOP 不起作用,因为这会清除新任务,而不是旧任务。


因为我觉得我一直很困惑,这里粗略地说明了流程是如何发散的:

                                                             -------------
                                                             | something |
                                                             |           |
                                                             |           |
-------------    -------------                          | => | old-task  |
| app start |    | current   |                          |    -------------
|           | => |           | => [Async Library Func] =|
| nohistory |    |           |                          |    -------------
| old-task  |    | old-task  |                          | => | newthing  |
-------------    -------------                               |           |
                                                             |           |
                                                             | new-task  |
                                                             -------------  

如果我们开始newthing,我们如何从异步库函数中取消/销毁/完成旧任务

这可以通过finishAffinity 没有库模块引用当前活动来实现吗?是否有等同于 finishAffinity 的标志?

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。