【问题标题】:How to emulate unloading of a background application by Android OS?如何模拟 Android 操作系统卸载后台应用程序?
【发布时间】:2012-12-21 21:05:37
【问题描述】:

出于测试目的,我需要轻松地重现 Android 系统决定保存后台应用程序的状态并终止后台应用程序的情况,其方式与通常用于内存优化目的的方式相同。事实上,当用户切换回这样一个被移除的进程时,我还需要测试它的恢复过程。

直接的方法是打开应用程序,然后打开更多其他任务,尝试分配尽可能多的资源。这太复杂和不可靠。

我找到了this question on SO,但答案意味着简单地终止进程,这似乎不是等效的,因为当用户决定切换时,似乎没有办法进一步自动恢复已保存状态的终止进程回到应用程序。如果我理解正确,在这种显式杀死应用程序之后,如果启动,将从一开始运行,而不是从保存状态开始运行。如果我错了,请纠正我。

根据 Android 文档,我需要由 ActivityManager.killBackgroundProcesses(packageName) 执行,但这是程序化的方式。是否有一个实用程序已经从 UI 中提供了相同的选项?

【问题讨论】:

    标签: android


    【解决方案1】:

    如果我理解正确,在这种显式杀死应用程序后,如果启动,将从一开始运行,而不是从保存状态。

    这取决于应用的启动方式。如果您的意思是从启动器图标,是的。但是,根据具体情况,用户可以通过 BACK 按钮或最近的任务列表返回给您,这些操作会将用户返回到他们离开的位置,而不是“最开始”。

    是否有一个实用程序已经从 UI 中提供了相同的选项?

    在 Android 4.0+ 设备上,您的应用在后台,打开最近的任务列表(长按 HOME 或按专用的最近功能),然后向右滑动您的应用。这似乎基本上在该包名称上调用 killBackgroundProcesses()

    我没有在模拟器中尝试过这个,但它可能会做同样的事情。

    【讨论】:

    • 谢谢。我在 2.3 设备上也有它,虽然没有滑动:打开“管理应用程序”、“显示后台任务”、单击所需的背景,然后单击“停止”就足够了。该进程保留在后台堆栈(和最近的)中,并且可以使用其状态重新创建。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多