如何testing构build的代码以保存/恢复活动的生命周期?

我如何testing以下所有的方法代码? 我想在所有情况都发生的情况下播放剧本,以查看我的代码是否适用于活动的保存/恢复过程。 那么在模拟器中我应该做什么来获得所有testing方法呢?

public class Activity extends ApplicationContext { protected void onCreate(Bundle savedInstanceState); protected void onStart(); protected void onRestoreInstanceState(Bundle savedInstanceState); protected void onSaveInstanceState(Bundle savedInstanceState); protected void onRestart(); protected void onResume(); protected void onPause(); protected void onStop(); protected void onDestroy(); } 

Solutions Collecting From Web of "如何testing构build的代码以保存/恢复活动的生命周期?"

onCreateonStartonResume将在您启动应用程序时运行,不需要进一步的交互。 onPauseonStoponDestroy会在你退出的时候运行,例如重复按下Backbutton。

要testingonRestartonSaveInstanceStateonRestoreInstanceState ,启动你的应用程序后,请尝试按主页button,启动一些其他应用程序,以确保您的活动将被杀死,然后再次启动您的应用程序。

使用日志logging来检查方法是否被调用。

(活动生命周期文档: http : //developer.android.com/guide/topics/fundamentals.html#actlife )

如果您在设备上启用了开发人员选项 ,则有一个选项不要保留有助于testingonRestoreInstanceState()

我们有一个问题,经过长时间的不活动后重新启动应用程序崩溃。 我们发现“不要保留活动”不是重现问题,而是Background process settings :: No background processes在Dev Settings中没有Background process settings :: No background processes (甚至在debugging时)。

要testingonSaveInstanceState和onRestoreInstanceState,您可以使用SetAlwaysFinish工具(请参阅下面的链接)或模拟器附带的DevTools应用程序。

http://bricolsoftconsulting.com/how-to-test-onsaveinstancestate-and-onrestoreinstancestate-on-a-real-device/

这两个应用程序都使用一个名为AlwaysFinish的隐藏设置,它是ActivityManagerNative类的一部分,用于更改Android操作系统的行为。 在新的行为下,操作系统在离开屏幕后立即卸载任何活动,触发onSaveInstanceState事件。 当操作系统想要返回活动时,它会调用onRestoreInstanceState事件。

上面的链接解释了如何使用SetAlwaysFinish应用程序来testing您的应用程序的onSaveInstanceState和onRestoreInstanceState事件。 如果您要使用DevTools,请启用“开发设置”>“立即销毁活动”。