Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/webpack/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android中有没有一种方法可以在不破坏应用程序的情况下清除应用程序数据?如果没有,我如何再次自动启动应用程序?_Android_Caching_Kotlin - Fatal编程技术网

Android中有没有一种方法可以在不破坏应用程序的情况下清除应用程序数据?如果没有,我如何再次自动启动应用程序?

Android中有没有一种方法可以在不破坏应用程序的情况下清除应用程序数据?如果没有,我如何再次自动启动应用程序?,android,caching,kotlin,Android,Caching,Kotlin,我试图通过以下方式清除数据: (ContextHack.appContext().getSystemService(ACTIVITY_SERVICE) as ActivityManager).clearApplicationUserData() 但它会导致崩溃。你知道更好的方法吗 基本上,我想取消一个BT设备的配对,在这样做时,清除所有数据,而不会使应用程序崩溃 pairingButton.setOnClickListener { val a

我试图通过以下方式清除数据:

(ContextHack.appContext().getSystemService(ACTIVITY_SERVICE) as ActivityManager).clearApplicationUserData()
但它会导致崩溃。你知道更好的方法吗

基本上,我想取消一个BT设备的配对,在这样做时,清除所有数据,而不会使应用程序崩溃

 pairingButton.setOnClickListener {

                        val alertDialog = AlertDialog.Builder(this.activity!!)
                        alertDialog.setIcon(R.drawable.dialog_logo)
                        alertDialog.setTitle(Strings.unpairWatchConfirmation)
                        alertDialog.setMessage(Strings.unpairWatchConfirmationMsg)

                        alertDialog.setPositiveButton(Strings.confirmAction) { dialog, id ->
                            (ContextHack.appContext().getSystemService(ACTIVITY_SERVICE) as ActivityManager)
                                   .clearApplicationUserData()
                            activity!!.toast(Strings.watchRemoved)
                        }
                        alertDialog.setNegativeButton(Strings.cancel) { dialog, id ->
                            dialog.dismiss()
                        }
                        alertDialog.show()
                    }

清除内存会导致应用程序关闭,因为当您从应用程序下删除文件时,它可能处于错误状态。相反,由于这是您自己的应用程序,只需编写一个函数,从内部存储器的底部开始,遍历目录结构即可删除每个文件。

清除内存会导致应用程序关闭,因为当您从应用程序下删除文件时,它可能处于错误状态。相反,由于这是您自己的应用程序,只需编写一个函数,从内部存储器的底部开始,遍历目录结构,删除每个文件。

1。您可以调用此方法[deleteAppData()]以清除应用缓存:
1. You can call this method[deleteAppData()] to clear app cache:

    public static void deleteAppData(Context context) {
 try {
 File dir = context.getCacheDir();
 deleteDir(dir);
 } catch (Exception e) {}
}

public static boolean deleteDir(File dir) {
 if (dir != null && dir.isDirectory()) {
 String[] children = dir.list();

 for (int i = 0; i < children.length; i++) {
 boolean success = deleteDir(new File(dir, children[i]));
 if (!success) {
 return false;
 }

 }
 return dir.delete();
 } else if(dir!= null && dir.isFile()) {
 return dir.delete();
 } else {
 return false;
 }

} 
公共静态void deleteAppData(上下文){ 试一试{ File dir=context.getCacheDir(); deleteDir(dir); }捕获(例外e){} } 公共静态布尔deleteDir(文件目录){ if(dir!=null&&dir.isDirectory()){ String[]children=dir.list(); for(int i=0;i
1。您可以调用此方法[deleteAppData()]以清除应用缓存:
公共静态void deleteAppData(上下文){
试一试{
File dir=context.getCacheDir();
deleteDir(dir);
}捕获(例外e){}
}
公共静态布尔deleteDir(文件目录){
if(dir!=null&&dir.isDirectory()){
String[]children=dir.list();
for(int i=0;i
Where alertDialog.create()?显示碰撞日志。如果你发现它正在崩溃(除了一个例外),或者Android强制关闭它?当您通过设置清除数据时,Android总是强制关闭应用程序。可能是因为它可能处于无效状态。我认为你应该手动清除数据。我认为你的
这个.activity
可能为Null这是Android强制关闭它是..Where alertDialog.create()?显示碰撞日志。如果你发现它正在崩溃(除了一个例外),或者Android强制关闭它?当您通过设置清除数据时,Android总是强制关闭应用程序。可能是因为它可能处于无效状态。我认为你应该手动清除数据。我认为你的
这个.activity可能为空。这是Android强制关闭它是的。。