6

ActivityonDestroyメソッドの後にonCreateandをテストする必要がありonRestoreInstanceHandleます。これを行う1つの方法を知っています-画面の向きを変更します。しかし、アクティビティが破棄される別の状況があります。他のアプリケーションがリソースを必要としており、ある時点で Android がバックグラウンド アクティビティを破棄することを決定した場合です。ただし、利用可能で、まだ復元される可能性がBundleあります。そのような状況をモデル化する方法はありますか?

4

3 に答える 3

7

これがどのバージョンの Android で利用可能になったかはわかりませんが、少なくとも Jelly Bean では、これを非常に簡単にする開発者オプションがあります。[設定] → [開発者向けオプション]で、[アプリ] セクションまで下にスクロールし、[アクティビティを保持しない] オプションを有効にします。

次に、([戻る] ボタンまたは [ホーム] ボタンを使用して) アプリを終了するたびに、OS はアプリを一時停止してバックグラウンドに置くのではなく、そのアプリのアクティビティを破棄します。ただし、テストが完了したら、その設定を解除することを忘れないでください。

于 2013-08-01T15:04:11.480 に答える
2
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
    }
}

参照: アクティビティ ドキュメントActivityInstrumentationTestCase2 ドキュメントインストルメンテーション ドキュメント

于 2013-08-18T20:48:08.193 に答える
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");
    }
于 2012-10-11T14:16:17.760 に答える