如何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(); } 

  • 确定活动是否由于后退导航而出现在前面
  • 活动别名在应用更新时被删除
  • 从片段内部调用活动方法
  • 按Backbutton时避免启animation面活动
  • android回到第一个屏幕
  • 如果从菜单调用活动,如何使用onActivityResult(..)
  • 点击应用程序的启动图标时会发生什么?
  • 如何在多个活动之间保持连接到Android服务?
  • 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,请启用“开发设置”>“立即销毁活动”。