如果进程在后台并且操作系统决定它需要资源(RAM,CPU等),Android将终止进程.我需要能够在测试期间模拟这种行为,以便我可以确保我的应用程序正常运行.我希望能够以自动方式执行此操作,以便我可以测试应用程序在发生这种情况时是否正常运行,这意味着我必须在每个活动中对此进行测试等.
我知道如何杀死我的进程.那不是问题.问题是,当我杀死我的过程(使用DDMS, ,adb shell kill,Process.killProcess()等)的Android不重新启动它以同样的方式,它将如果Android操作系统杀死了它本身.
如果Android操作系统终止进程(由于资源要求),当用户返回应用程序时,Android将重新创建该进程,然后在活动堆栈上重新创建顶级活动(调用onCreate()).
另一方面,如果我终止进程,Android会假定活动堆栈顶部的活动表现不佳,因此它会自动重新创建进程,然后从活动堆栈中删除顶级活动并重新创建下面的活动顶级活动(调用onCreate()`).这不是我想要的行为.我想要与Android杀死进程时相同的行为.
只是用图解来解释,如果我的活动堆栈看起来像这样:
ActivityA -> ActivityB -> ActivityC -> ActivityD
Run Code Online (Sandbox Code Playgroud)
如果Android终止进程并且用户返回应用程序,Android将重新创建该进程并创建ActivityD.
如果我终止该过程,Android将重新创建该过程并创建ActivityC.
android ×1