当前位置: 代码迷 >> Android >> 问个关于provider重新加载数据的有关问题
  详细解决方案

问个关于provider重新加载数据的有关问题

热度:27   发布时间:2016-04-28 05:17:03.0
问个关于provider重新加载数据的问题
最近在做安卓的自动化测试,测试代码本身已经写好了,为了能够让测试更加自动化一点,准备用一个脚本干如下的事情:
1) 编译测试的apk
2)   把测试用的database 覆盖到手机里。(主要是短信和彩信,有几百条你来我往的短信彩信,包含各种类型彩信, 音频,视频,图片,未下载的等等..)
3)使测试数据生效
4) 运行测试,生成报告。

现在1,2,4 都没问题。

就3比较有问题,我发现重启Message不会刷新数据,理所当然的是 message 的content provider 没有重载这些数据。
请问有什么办法做到么?

尝试了比较粗暴的办法,就是kill 和restart. kill 没问题,用adb shell am kill就可以了。但是怎么start 呢?

adb shell am start 是用来启动activity, adb shell am startservice 是用来启动service, 但是没找到启动provider的命令。

------解决方案--------------------
比如你要读短信,在代码里面可以就这样写
ContentResolver cr = getContentResolver();   
        String[] projection = new String[]{"_id", "address", "person",    
                "body", "date", "type"};   
        Uri uri = Uri.parse(SMS_URI_ALL);   
        Cursor cur = cr.query(uri, projection, null, null, "date desc"); 
  相关解决方案