0

私のテストプロジェクトでは、すべてのメソッドに注釈がありませんUiThreadTest。利点は、クリックなどを実行しgetInstrumentation().waitForIdleSync();て、UI を待つことができることです。しかし、不利な点は、UI のボタンがコンストラクターを呼び出すダイアログを開くことです。getActivity()このメソッドは null を返します。これは、テスト メソッドに注釈がないためです。UIThreadTest追加するとダイアログが開きますが、使用できませんwaitForIdleSync

それで、このアノテーションでUIを待つ同等のコードはありますか?

4

1 に答える 1

4

私の経験では、この注釈の使用を制限することは良いことです。私がよく行うのは、実行可能なフォーマット内で Ui スレッドと対話する必要があるコードを実行することです。

getInstrumentation().runOnMainSync(new Runnable() {
    @Override
    public void run() {
        //code that needs to run on UI thread
    }
}); 

その後、実行するアクションの前後に waitForIdleSync を使用できます。

于 2012-11-09T14:02:05.780 に答える