美文网首页
2022-03-09

2022-03-09

作者: 郭儿特洛夫斯基 | 来源:发表于2022-03-09 09:33 被阅读0次

    现在有两个应用,一个是应用A,另一个是应用B,当应用A需要数据时,则通过ContentProvider去拿数据回来。但是现在有个问题,就是在Android版本5.x上,有一个是否允许自启动权限,这个权限会影响到应用A向应用B获取数据。我们先来看看下面几个场景:

    场景一:安装应用A,再安装应用B,打开应用B的自启动权限,这个时候激活应用B,这个时候A再去应用B拿数据,则应用A可以顺利拿到数据。这个时候用DDMS去查看B的进程,B肯定是打开的(不是逗你,你都激活了,还能是关闭么。。。)

    场景二:安装应用A,再安装应用B,关闭应用B的自启动权限,这个时候激活应用B,这个时候A再去应用B拿数据,则应用A也可以顺利拿到数据,这个时候用DDMS去查看B的进程,肯定是打开的(这也不是逗你。。。)

    场景三:安装应用A,再安装应用B,打开应用B的自启动权限,这个时候不去激活B,查看DDMS,确保B没有被激活,应用A向B拿数据,发现可以取到数据,这个时候再去查看DDMS,可以发现B的进程已经被激活了。

    场景四:安装应用A,再安装应用B,关闭应用B的自启动权限,这个时候不去激活B,查看DDMS,确保B没有被激活,应用A向B拿数据,发现现在取不到数据了,这个时候在去查看DDMS,发现B的进程没有被激活。此时后台会发现Log:ActivityThread(22430): Failed to find providerinfo for xxx.

    由此可以得出,Android中A应用向B应用去通过ContentProvider去获取数据时,是需要先唤醒B应用,在通过B的ContentProvider去获取资源数据,如果此时应用B的自启动权限被取消,则A应用是无法完成读取资源的操作的。

    相关文章

      网友评论

          本文标题:2022-03-09

          本文链接:https://www.haomeiwen.com/subject/fcctdrtx.html