gpt4 book ai didi

android - 如何知道 Android 任务的可见性变化?

转载 作者:太空狗 更新时间:2023-10-29 12:42:32 27 4
gpt4 key购买 nike

我有 2 个使用相同 Android 任务的 Activity - 即它们将使用相同的返回堆栈。

我们称 A 为返回栈中的第一个 Activity ,B 为返回栈中的第二个 Activity 。

情况 1: A 收到通知,当 A 在前台然后 B 出现在前台(出于任何原因,比如因为它收到了外部 Intent )。

情况 2:当 A 在前台但另一个应用程序在前台启动时,A 收到通知它进入后台.

问题:我的应用如何区分这两种情况?有没有办法知道转换 A in foreground -> A in background 是否保持当前任务显示在屏幕上?

基本上,我需要在 Android 任务变得可见或不可见时获得一个事件。

最佳答案

如果我对您的理解正确,如果 Activity BA 暂停后没有被激活,您的 Activity A 会做一些不同的事情。

首先,让一个 Activity 在 Activity 不再可见时做某事不是一个好主意。正如我们在 Android 生命周期中看到的那样,它可能会停止: enter image description here

我会将您的后台代码放入服务中。只要 Activity AB 暂停或恢复,该服务就会收到通知。在那里你可以添加一个必须通过的小超时,直到你开始你的逻辑。

如果你这样做,那将会发生:

案例 1: Activity A 进入后台并在 onPause 处理程序中向您的服务发送消息。服务启动其超时计时器。 Activity B 启动并在其 onResume 处理程序中向服务发送消息。

现在服务知道它仍然是相同的 Activity 并采取相应的行动。

案例 2: Activity A 进入后台并发送消息。该服务启动其超时计时器。它超时(我认为 200 毫秒就足够了),现在您的服务知道该任务不再处于 Activity 状态并采取相应行动。

关于android - 如何知道 Android 任务的可见性变化?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23262347/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com