instrumentation中SyncBaseInstrumentation学习笔记(7)

来源:互联网 发布:淘宝刷销量有什么意思 编辑:程序博客网 时间:2024/05/22 04:45

测试Content Provider同步性的类。它使用Instrumentation在启动测试同步性之前取消已经存在的同步对象。继承自InstrumentationTestCase,重写了setUp方法,syncProvider和cancelSyncsandDisableAutoSync为保护方法


    protected void syncProvider(Uri uri, String accountName, String authority) throws Exception {        Bundle extras = new Bundle();        extras.putBoolean(ContentResolver.SYNC_EXTRAS_IGNORE_SETTINGS, true);        Account account = new Account(accountName, "com.google");        ContentResolver.requestSync(account, authority, extras);        long startTimeInMillis = SystemClock.elapsedRealtime();        long endTimeInMillis = startTimeInMillis + MAX_TIME_FOR_SYNC_IN_MINS * 60000;        int counter = 0;        // Making sure race condition does not occur when en entry have been removed from pending        // and active tables and loaded in memory (therefore sync might be still in progress)        while (counter < 2) {            // Sleep for 1 second.            Thread.sleep(1000);            // Finish test if time to sync has exceeded max time.            if (SystemClock.elapsedRealtime() > endTimeInMillis) {                break;            }            if (ContentResolver.isSyncActive(account, authority)) {                counter = 0;                continue;            }            counter++;        }    }    protected void cancelSyncsandDisableAutoSync() {        ContentResolver.setMasterSyncAutomatically(false);        ContentResolver.cancelSync(null /* all accounts */, null /* all authorities */);    }}

第一个方法syncProvider为同步一个内容提供者。

第二个方法为取消自动同步

0 0
原创粉丝点击