在 Android 中有没有一种方法可以模拟 destroyed/collected android.app.Application(对象),就像 "don't keep activities" 对活动所做的那样?
Is there a way in Android to simulate a destroyed/collected android.app.Application (Object) like "don't keep activities" does for Activities?
我看到的行为是:
如果您使用 "dont keep activities",activity 的内存将始终被破坏,并且每次都会使用 Intent
和 savedBundle
的数据从头开始重新创建activity 从后台返回。这有助于测试 android 生命周期问题。
但现实中还可能发生什么:如果应用程序长时间处于后台,android.app.Application
对象本身将 destroyed/collected 同时保留活动的堆栈信息。 Android 将尝试使用 Intent
和 savedBundle
中的数据重新创建 activity,但也会重新创建 android.app.Application
对象。
所以问题是:有没有办法模拟这种行为?
编辑:后来发现这也在这里回答: How to simulate Android killing my process
是的,有:
只需启动您的应用,导航到您要测试的 activity,然后按主页按钮(重要的应用需要在后台运行)。然后使用命令行:
adb shell am kill your.app.package.name
或在 Android 工作室中按 Terminate Application
Android 监视器:
然后用例如启动器图标和 activity 将使用新的应用程序对象重新创建。
我看到的行为是:
如果您使用 "dont keep activities",activity 的内存将始终被破坏,并且每次都会使用 Intent
和 savedBundle
的数据从头开始重新创建activity 从后台返回。这有助于测试 android 生命周期问题。
但现实中还可能发生什么:如果应用程序长时间处于后台,android.app.Application
对象本身将 destroyed/collected 同时保留活动的堆栈信息。 Android 将尝试使用 Intent
和 savedBundle
中的数据重新创建 activity,但也会重新创建 android.app.Application
对象。
所以问题是:有没有办法模拟这种行为?
编辑:后来发现这也在这里回答: How to simulate Android killing my process
是的,有:
只需启动您的应用,导航到您要测试的 activity,然后按主页按钮(重要的应用需要在后台运行)。然后使用命令行:
adb shell am kill your.app.package.name
或在 Android 工作室中按 Terminate Application
Android 监视器:
然后用例如启动器图标和 activity 将使用新的应用程序对象重新创建。