我正在使用database
来存储一些data
。但是,当用户转到Apps Setting
并按应用设置中的'clear data'
按钮时,数据库中的数据会被删除,以避免这种情况。我是否可以在应用设置中将'clear data'
按钮设置为未启用或任何其他建议....
答案 0 :(得分:4)
添加android:manageSpaceActivity=".ActivityOfMyChoice"
到你的Manifest的应用程序标签:
<application
android:label="MyApp"
android:icon="@drawable/icon"
android:manageSpaceActivity=".ActivityOfMyChoice" >
然后,有一个“管理空间”按钮,而不是“清除数据”,它启动ActivityOfMyChoice
ActivityOfMyChoice.java
public class ActivityOfMyChoice extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
// TODO Auto-generated method stub
super.onCreate(savedInstanceState);
finish();
}
因此,当我们点击Mange活动时,它会完成活动。
答案 1 :(得分:3)
没有直接的方法可以避免从我所知道的内容中删除任何应用数据。
但是,您可以将数据存储在某个文件中的外部存储(SD卡)上,并在每个应用程序启动时检查该文件是否存在并将其内容合并到数据库中。如果用户从SD手动删除备份文件,插入另一个SD,删除SD或将设备作为已安装的驱动器连接到计算机,然后启动应用程序,这当然不起作用。
答案 2 :(得分:3)
Android不会询问您的应用程序是否要删除其数据。这是为用户提供的系统功能。用户可以完全卸载App。
因此,在另一个位置创建/打开数据库文件。
数据持久性:
答案 3 :(得分:1)
我认为有一种方法,但尚未尝试过。您可以将您的数据库文件存储在资产文件夹中,检查它是否可用,否则只需执行此操作https://stackoverflow.com/a/9109728/265167(注意DataBaseHelper类)。但这样做,你将失去所有“更新数据”。
答案 4 :(得分:0)
最后我找到了一些解决方案,如果您使应用程序系统管理员,则无法清除数据并卸载应用程序