我正在使用 ContentProvider 开发一个应用程序。它在清单中声明:
<provider android:name="foor.bar.FooBarProvider"
android:authorities="foo.bar.FoorBarProvider" />
一切正常,我可以访问提供商。问题是我想创建应用程序的演示版本,并且希望它共享相同的内容提供程序,以便当用户安装完整版本时,数据保持同步。此外,应该可以仅安装完整版或演示版。因此,我必须将我的内容提供商包含在both.
现在,当我尝试安装这两个应用程序时,我得到了INSTALL_FAILED_CONFLICTING_PROVIDER错误消息,显然是因为两个 AndroidManifest 声明了相同的内容提供程序。
有没有办法在清单中告诉该内容提供程序仅在它尚不存在时才应使用?或者另一种解决方法?
一个解决方案是完整版本将数据从演示内容提供商迁移到完整版本内容提供商,但我宁愿避免这种情况。
一个解决方案是完整的
版本从演示迁移数据
内容提供者到完整版
内容提供商,但我宁愿
避免这种情况。
以下是可能的事件顺序:
- 用户安装精简版
- User用户精简版,存储数据
- 用户升级到完整版本,但您没有按照上面引用的段落复制数据
- 用户卸载精简版,删除其数据
- 用户在市场上给您一星评级
您需要在首次运行完整版时将数据从精简版克隆到完整版,以避免出现此问题。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)