我正在用cordova 编写一个Android 应用程序。此应用程序仅安装在专用的 Android 5.1.1 设备上。其中,我具有清除所有应用程序数据的功能。我在cordova-plugin中实现了这个功能:
// 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();
因为应用程序立即强制关闭。
我该如何解决这个问题?如何清除应用程序数据并重新启动设备?