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