gpt4 book ai didi

android - 如何测试android :alwaysRetainTaskState

转载 作者:塔克拉玛干 更新时间:2023-11-02 23:08:30 24 4
gpt4 key购买 nike

我有一个运行良好的应用程序,除非它在后台运行了很长时间然后又回到了前台。我想知道当系统清除我的 Activity 堆栈时,这是否与标志 alwaysRetainTaskState 有任何关系。我想测试一下,但我不想每次都坐 30 分钟。有什么方法可以通过其他方式触发正常的系统行为吗?

更新:如果我设置标志 android:clearTaskOnLaunch,它会在我重新启动应用程序时执行与 alwaysRetainTaskState 相同的操作吗?

最佳答案

Is there any way to trigger the normal system behavior some other way?

测试 alwaysRetainTaskState 的最简单方法是离开 Activity 并启动几个使用大量内存的应用程序(一个接一个)。它重复但相当可靠。如果我选择了正确的应用程序,我可以在大约 40 秒后在我的 Galaxy S-II 上触发一个。

除此之外,我不知道还有其他直接方法可以测试这个标志。

If I set the flag android:clearTaskOnLaunch, is it going to do the same thing as alwaysRetainTaskState when I relaunch the app?

绝对不是。 ClearTaskOnLaunch 基本上意味着您的应用程序将返回到根 Activity。所有其他 Activity 都将从您的 Activity 堆栈中删除。这意味着如果您的 Activity 依赖于子 Activity 来传递其内容,那么它将会全部丢失。换句话说,它让用户回到应用程序 Activity 堆栈的初始状态。它可能根据 alwaysRetainTaskState 标志保持那个 Activity 的状态。

附加信息

alwaysRetainTaskState 仅对您的根 Activity 有用。它的基本目的是让它和所有其他 Activity 存活更长时间。任何不直接与这些 Activity 相关的对象都在不断变化并且可以被丢弃。通常,如果 alwaysRetainTaskState 不起作用,那是因为您的代码正在手动删除引用(通常是为了响应 onPause() 或类似事件)。

关于android - 如何测试android :alwaysRetainTaskState,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4634985/

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