发布新更新时清除应用程序数据和缓存

时间:2018-09-10 20:24:50

标签: android

我正在发布一个新更新,它将完全从上一个版本更改我的应用程序构建。我希望该应用程序是最新的,并删除当前用户的所有旧的未缓存缓存和数据。 我该如何实现?我要使用什么正确的代码以及在哪里正确添加代码,我不是android开发方面的专家,因此请更具体地指导我。我检查了this question,但是没有提到清除数据和缓存的实际代码。

我的设置(如果需要):

// Android Studio 3.0        
compileSdkVersion 26
buildToolsVersion '27.0.3' (Gradle)
minSdkVersion 16
targetSdkVersion 26

2 个答案:

答案 0 :(得分:1)

当应用程序更新时,您可以在bordcast接收器类中监听事件,并在广播接收器的onReceive中进行清理。

您共享的链接中的以下注释:)具有所有详细信息。

https://stackoverflow.com/a/48520332/8312634

答案 1 :(得分:0)

将其添加到MainActivity是清除缓存和数据的有效方法。

   @Override
   protected void onDestroy() {
      super.onDestroy();
      try {
         trimCache(this);
      } catch (Exception e) {
         // TODO Auto-generated catch block
         e.printStackTrace();
      }
   }

   public static void trimCache(Context context) {
      try {
         File dir = context.getCacheDir();
         if (dir != null && dir.isDirectory()) {
            deleteDir(dir);
         }
      } catch (Exception e) {
         // TODO: handle exception
      }
   }

   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;
            }
         }
      }

      // The directory is now empty so delete it
      return dir.delete();
   }

}

在这里找到答案:Clear Application cache on exit in android

  

现在,每次用户关闭应用程序时,都会清除缓存,它适用于   我,因为我不想让webview缓存,对于其他人   想要仅在更新时清除它,并使用onReceive实现   应该可以。