更新应用程序使用旧版本应用程序中使用的FFMpeg版本

时间:2020-06-01 15:53:34

标签: android caching ffmpeg android-ffmpeg app-update

我在应用程序中使用的是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;
        }
    }

0 个答案:

没有答案