如何在Android中发布新版本时删除旧的应用程序文件?

时间:2011-12-15 16:24:36

标签: android google-play

我要在Android电子市场上发布我的应用。这个应用程序创建一些文件/目录...发布更新删除旧版本的旧文件? 如果没有,在首次启动升级后的应用程序时,Android上用新文件替换旧文件的最佳方法是什么?

在IOS上,我解决了这个问题,创建一个空文件,指示应用程序的版本。升级应用程序时,它会将磁盘上的旧版本与应用程序版本进行比较,如果它们不同,则会删除旧数据。但是我想知道是否有像SQLiteOpenHelper的'onUpgrade'方法这样的本地方法。

谢谢。

2 个答案:

答案 0 :(得分:1)

不,我不相信旧文件在升级时不会自动删除。如果我错了,有人会纠正我。

但是只需创建一个这样的方法来删除旧的文件目录,然后再替换它。

static public boolean deleteDirectory(File path) {
if( path.exists() ) {
  File[] files = path.listFiles();
  if (files == null) {
      return true;
  }
  for(int i=0; i<files.length; i++) {
     if(files[i].isDirectory()) {
       deleteDirectory(files[i]);
     }
     else {
       files[i].delete();
     }
  }
}
return( path.delete() );

}

答案 1 :(得分:1)

  

是否会发布更新删除旧版本的旧文件?

没有

  

在IOS上,我解决了这个问题,创建一个空文件,指示应用程序的版本。升级应用程序时,它会将磁盘上的旧版本与应用程序版本进行比较,如果它们不同,则会删除旧数据。

对于Android来说,这也是一个很好的解决方案,恕我直言。

  

但是我想知道是否有像SQLiteOpenHelper的'onUpgrade'方法这样的原生方法。

SQLiteOpenHelper几乎完全按照您在iOS中为文件执行的操作,除了不是空文件,而是包含版本数据的元数据表。