我想知道清除 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
任何帮助将不胜感激。
谢谢你。