如何测试Activity onDestroy方法

时间:2012-10-11 13:32:11

标签: android android-activity lifecycle

我需要测试一个活动onDestroy方法,后跟onCreateonRestoreInstanceHandle。我知道一种方法 - 改变屏幕方向。但是当活动被破坏时还有另一种情况 - 其他应用程序需要资源,并且在某些时候Android决定销毁后台活动。但是,它仍然可以恢复,Bundle可用。有没有办法模拟这种情况?

3 个答案:

答案 0 :(得分:4)

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

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

答案 1 :(得分: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");
    }

答案 2 :(得分:1)

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