0

アクティビティ用の ActivityInstrumentationTestCase2 があります。

そこで、 onStop() メソッドで、Activity が BACK キーで終了したときに設定の変更が保存されることをテストします。

私のテストでは、アクティビティを開始し、設定を変更してから、finish() でアクティビティを停止します。アクティビティが終了するのを待ってから、SharedPreferences に保存されている設定を確認します。

Android 4.3 を搭載した Nexus 7 では、このテストが失敗することはありません。

Android 4.1.2 を搭載した Samsung S3 では、常に失敗します。

別のコンテキストを使用してみました。また、SharedPreferences.Editor で apply() の代わりに commit() を使用しましたが、動作に違いはありませんでした。

何か案は?

4

1 に答える 1

0

アクティビティを次のように終了する代わりに:

アクティビティ.finish();

次で終了する必要があります。

getInstrumentation().callActivityOnStop(アクティビティ);

戻るキーが押されて onStop() が呼び出されたかのように、アクティビティを終了して終了するのを待つより良い方法があるのではないかと思います。


その「修正」により、失敗したケースが修正されましたが、他のケースが失敗する原因になりました。activity.finish() を使用した場合にのみ機能するようです。

于 2013-11-14T21:47:44.203 に答える