【问题标题】:How to test Activity onDestroy method [duplicate]如何测试Activity onDestroy方法[重复]
【发布时间】:2013-08-19 04:48:08
【问题描述】:

我需要测试一个 Activity onDestroy 方法,然后是 onCreateonRestoreInstanceHandle。我知道一种方法——改变屏幕方向。但是还有另一种情况是activity被销毁了——其他应用程序需要资源,并且在某个时刻Android决定销毁后台activity。但是,它仍然可以恢复,Bundle 可用。有什么方法可以模拟这种情况吗?

【问题讨论】:

  • 我不确定,但是当您启动另一个 Activity 时,总是会调用 onStop。
  • @Marcos Vasconcelos - 抱歉,我的意思是 onDestroy。问题已编辑。
  • 请记住,尽管通常调用 onStop 和 onDestroy,但系统可能会在必要时因内存限制而决定跳过它。在不旋转设备的情况下测试它的最佳方法是开始打开其他应用程序,直到您的应用程序被销毁。
  • 也许你应该重命名你的问题?因为它实际上是关于测试活动 lyfecycle 和重新创建。
  • 我打算在 ICS+ 上添加,您可以打开最近的应用程序并将应用程序滑开。但接受的答案看起来更好。

标签: android android-activity lifecycle


【解决方案1】:

我不确定在哪个版本的 Android 上可用,但至少在 Jelly Bean 中,有一个开发人员选项可以让这变得非常简单。在设置 → 开发者选项下,向下滚动到应用部分并启用不保留活动选项。

然后,每当您退出应用程序(使用返回按钮或主页按钮)时,操作系统都会销毁该应用程序的活动,而不是暂停它并将其置于后台。不过,完成测试后不要忘记取消设置。

【讨论】:

    【解决方案2】:

    你可以用这个例子和写日志来调用 OnDestroy

        @Override
        public void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.main);
            this.finish();
        }
    
        @Override
        protected void onDestroy() {
            // TODO Auto-generated method stub
            super.onDestroy();
            Log.i("test", "OnDestroy is called");
        }
    

    【讨论】:

      【解决方案3】:
      public class MyActivityTests extends ActivityInstrumentationTestCase2<MyActivity> {
          public void testLifecycle() {
              Activity activity = this.getActivity();
              //do stuff to the activity
              this.getInstrumentation().callActivityOnStop(activity);
              activity = this.getActivity(); // this should call onCreate() and onRestoreInstanceHandle()
              // write assertions
          }
      }
      

      另请参阅: Activity docsActivityInstrumentationTestCase2 docsInstrumentation docs

      【讨论】:

        猜你喜欢
        • 2011-11-18
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2018-12-10
        • 2020-04-01
        • 2019-01-23
        • 2014-01-04
        • 2011-07-08
        相关资源
        最近更新 更多