我正在开发一个Android应用程序的自动化测试(使用Robotium).为了确保测试的一致性和可靠性,我想以干净状态(被测试的应用程序)开始每个测试.为此,我需要清除应用数据.这可以在设置/应用程序/管理应用程序/ [我的应用程序] /清除数据中手动完成
以编程方式完成此操作的推荐方法是什么?
setPersistenceEnabled(true)?在我的应用程序中,我想在用户注销时清除db,并确认将删除未同步的更改.此应用程序将在平板电脑上被许多人使用,并且每个用户将存储许多数据,因此我想清除存储在设备上的不必要数据:
这是一个安全漏洞,因为任何用户,无论是否登录,都可以读取所有以前下载的数据!幸运的是我们没有写访问权限.
我试图在离线和在线模式下自行清除数据库,但数据仍然存在于设备上:
// first clear all data on my own
FirebaseDatabase db = FirebaseDatabase.getInstance();
db.goOffline(); // even when I clear db in online mode data persist on mobile device
db.getReference().setValue(null);
// and then logout
FirebaseAuth.getInstance().signOut();
db.goOnline();
Run Code Online (Sandbox Code Playgroud)
例如数据结构:
{
"someList": {
"userId1": {
"itemId11": {
"name": "name 11"
},
"itemId12": {
"name": "name 12"
},
...
"itemId1N": {
"name": "name 1N"
}
}
"userId2": {
"itemId21": …Run Code Online (Sandbox Code Playgroud) 我想在用户按下注销按钮时清除整个数据库,并在另一个用户登录时加载新数据.我尝试了许多解决方案,如
try {
Realm.deleteRealm(realmConfiguration);
} catch (Exception ex){
throw ex;
}
Run Code Online (Sandbox Code Playgroud)
也
try {
Realm.deleteRealmFile(getActivity());
//Realm file has been deleted.
} catch (Exception ex){
ex.printStackTrace();
//No Realm file to remove.
}
Run Code Online (Sandbox Code Playgroud)
但这两个代码都不起作用.提前致谢.
我正在开发一个应用程序,我想让用户能够设置,如果他们在几次尝试进入应用程序后失败登录,它将自动删除所有数据,包括首选项和数据库.
是否有一种简单的方法可以执行此操作,还是必须编写代码来手动重置应用程序使用的所有内容?
我当前的 Android 应用程序需要调用
ActivityManager.clearApplicationUserData()
Run Code Online (Sandbox Code Playgroud)
模拟用户清理App存储
哪个工作正常。
调用的一个副作用clearApplicationUserData()是应用程序(可以理解)关闭。
这会给用户带来糟糕的体验。
一旦我调用了 ,我就很难重新启动我的应用程序clearApplicationUserData()。
我曾尝试将startActivity,Alarm Manager与Pending Intent, Foreground/Background服务一起使用。
什么都行不通。
是否无法重新启动已调用的 Android 应用程序clearApplicationUserData()?
我正在构建一个应用程序,自动备份数据的功能设置如下:
android:allowBackup="true"
Run Code Online (Sandbox Code Playgroud)
我需要删除这些数据。我无法要求应用程序的用户删除备份本身或禁用数据同步。
有没有办法以编程方式请求?
谢谢
android 宏基准测试可以在没有清除应用程序数据的情况下运行吗?
因为在我的应用程序中,它要求用户接受许可证,并且每次启动应用程序时,宏基准都会清除应用程序的数据。
我试图通过一个程序删除所有最近的任务.在发布问题之前,我用Google搜索了,但没有运气.
我尝试使用ActivityManager.killBackgroundProcess(pckagename),但它也没有从最近的任务列表中删除任务.
我也试过Android的链接 ,如何清除最近的任务列表哪个可以从大多数手机的主页按钮获取?反思是一种可能的方式吗?
我总是得到以下异常
java.lang.SecurityException:Permission Denial:removeTask()from pid = 23297,uid = 10051需要android.permission.REMOVE_TASKS
即使我已经android.permission.REMOVE_TASKS在清单中指定了权限.
我们如何以编程方式清除最近的任务列表,以便用户在最近的任务列表中看不到最近的任务?
我有一个WebView实例,允许用户进行身份验证并访问网络应用程序提供的某些功能。用户完成工作后WebView,出于安全目的,我们需要清理会话。
奇怪的是,下次我打开屏幕时WebView,会话仍然存在,尽管我尝试清理会话,但我可以从上次中断的地方继续。
我尝试做的事情(我实际上运行了调试器以确保调用这些方法):
webView.clearCache(true)
webView.clearFormData()
webView.clearHistory()
webView.clearSslPreferences()
webView.clearMatches()
CookieManager.getInstance().removeAllCookies {
CookieManager.getInstance().flush()
}
Run Code Online (Sandbox Code Playgroud)
flush()我在的 回调中调用的原因removeAllCookies()是该removeAllCookies()方法是异步的,所以我想也许需要一些时间才能将内存中 cookie 存储的状态与持久存储同步,但这没有帮助。
我对 没有做任何花哨的事情CookieManager,它是操作系统提供的默认设置(Pixel 2 XL 上安装的 Android 9.0)。我有什么遗漏的吗?