0

我想知道清除 Android 应用程序数据的正确方法是什么。

我尝试在下面实现此方法,但它强制关闭了我的应用程序,这对用户体验来说不是一件好事。

    private void clearAppData() {
        try {
            // clearing app data
            if (Build.VERSION_CODES.KITKAT <= Build.VERSION.SDK_INT) {
                ((ActivityManager)getSystemService(ACTIVITY_SERVICE))
                        .clearApplicationUserData();// note: it has a return value!
            } else {
                String packageName = getApplicationContext().getPackageName();
                Runtime runtime = Runtime.getRuntime();
                runtime.exec("pm clear "+packageName);
            }

        } catch (Exception e) {
            e.printStackTrace();
        }
    }

已经尝试将其与uncaughtException强制关闭后重新启动应用程序的方法混合使用,但uncaughtException应用程序关闭后该方法未触发。

public class MainActivity extends Activity {

    Context context;

    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        Thread.setDefaultUncaughtExceptionHandler(new Thread.UncaughtExceptionHandler() {
            public void uncaughtException(Thread t, Throwable e) {
                MainActivity.restartApp(context);
            }
        });

        ...

    }

    public static void restartApp(Context context){
        Intent mStartActivity = new Intent(context, MainActivity.class);
        int mPendingIntentId = 123456;
        PendingIntent mPendingIntent = PendingIntent.getActivity(context, mPendingIntentId,    mStartActivity, PendingIntent.FLAG_CANCEL_CURRENT);
        AlarmManager mgr = (AlarmManager)context.getSystemService(Context.ALARM_SERVICE);
        mgr.set(AlarmManager.RTC, System.currentTimeMillis() + 100, mPendingIntent);
        System.exit(0);
    }

    ...

}

我也尝试过使用下面链接中提供的方法。但不知何故,数据没有被清除。

https://stackoverflow.com/a/9073473/15835391

https://stackoverflow.com/a/31988855/15835391

任何帮助将不胜感激。

谢谢你。

4

0 回答 0