how can you tell when an Android activity is finished loading?

后端 未结 2 1535
小蘑菇
小蘑菇 2020-12-31 04:25

I\'m in the process of working on an automated test suite for our android app, and running into trouble waiting for activities to fully load. I can call getActivity, but ju

相关标签:
2条回答
  • 2020-12-31 05:06

    If you create a setUp() method like this in your test case extending ActivityInstrumentationTestCase2<MyActivity>

    @Override
    protected void setUp() throws Exception {
        super.setUp();
    
        final MyActivity activity = getActivity();
    
        tv1 = (EditNumber)activity.findViewById(resId1);
        tv2 = (EditNumber)activity.findViewById(resId2);
    }
    

    your Activity will be fully operational and the layout loaded, demonstrated in this case by the fact that you can access the Views and its content

    @SmallTest
    public void testSimpleCreate() {
        final MyActivity activity = getActivity();
        assertNotNull(activity);
    
        assertNotNull(tv1);
        assertEquals("mystr1", tv1.getText().toString());
        assertNotNull(tv1);
        assertEquals("mystr2", tv2.getText().toString());
    }
    
    0 讨论(0)
  • 2020-12-31 05:19

    As I mentioned in a comment, your view hierarchy should be working after your call to setContentView() early in onCreate(). I've never had any problems like this with any activity or test class..

    I'm not sure this is of any help for this specific case, but in general you can determine when the UI event queue is empty by calling getInstrumentation().waitForIdleSync(). That'll block until there's no more UI events to process.

    0 讨论(0)
提交回复
热议问题