我在我的应用程序中使用FFMpeg旧版本,现在我将我的应用程序更新到新的FFMpeg版本。但是当我将旧应用程序版本更新到新应用程序版本时,它似乎仍然使用旧版本的FFMpeg,直到我卸载旧应用程序版本然后安装新的应用程序版本。我尝试使用下面的代码以编程方式删除我的新版本应用程序中的缓存数据,但在某些仍使用旧 FFMpeg 版本的设备中,我也面临问题-
private void clearData()
{
try {
PackageInfo pInfo = getPackageManager().getPackageInfo(getPackageName(), 0);
int mCurrentVersion = pInfo.versionCode;
SharedPreferences mSharedPreferences = getSharedPreferences("xyz", Context.MODE_PRIVATE);
SharedPreferences.Editor mEditor = mSharedPreferences.edit();
mEditor.apply();
int last_version = mSharedPreferences.getInt("last_version", -1);
if(last_version != mCurrentVersion)
{
deleteCache(this);
}
mEditor.putInt("last_version", mCurrentVersion);
mEditor.commit();
} catch (Exception e) {
FirebaseCrashlytics.getInstance().recordException(e);
}
}
private void deleteCache(Context context) {
try {
File dir = context.getCacheDir();
deleteCacheDir(dir);
} catch (Exception e) { FirebaseCrashlytics.getInstance().recordException(e);
}
}
private boolean deleteCacheDir(File dir) {
if (dir != null && dir.isDirectory()) {
String[] children = dir.list();
for (int i = 0; i < children.length; i++) {
boolean success = deleteCacheDir(new File(dir, children[i]));
if (!success) {
return false;
}
}
return dir.delete();
} else if(dir!= null && dir.isFile()) {
return dir.delete();
} else {
return false;
}
}