Я программирую Android-приложение с помощью Cordova. Это приложение устанавливается только на выделенные устройства Android 5.1.1. Среди прочего у меня есть функция очистки всех данных приложений. Я реализовал эту функциональность в плагине Cordova:
// My Cordova Plugin java
if (action.equals("factory_reset")) {
try {
Log.i(TAG, "Factory Reset");
((ActivityManager)cordova.getActivity().getApplicationContext().getSystemService(ACTIVITY_SERVICE)).clearApplicationUserData();
rebootDevice();
} catch (Exception ex) {
Log.w(TAG, "Error while doing a Factory Reset", ex);
}
}
Я хочу перезагрузить устройство после завершения удаления всех данных приложения. Вот моя функция перезагрузки:
private void rebootDevice(){
Context mContext = cordova.getActivity().getApplicationContext();
PowerManager pManager = (PowerManager)mContext.getSystemService(Context.POWER_SERVICE);
pManager.reboot(null);
}
Сама функция перезагрузки работает. Однако у меня есть проблема, что она не достигает этой функции, когда я вызываю ((ActivityManager)cordova.getActivity().getApplicationContext().getSystemService(ACTIVITY_SERVICE)).clearApplicationUserData();
, потому что приложение немедленно закрывается.
Как я могу это решить? Как я могу очистить данные приложения и перезагрузить устройство?