3
,因爲我在這個問題以前問:Clear parse installation cache on Android強制新解析安裝
我想刪除/清除我的Android手機上安裝解析當用戶退出應用程序的。我可以通過腳本從網上刪除解析安裝,然後我必須從手機上的內存/磁盤清除它。
我的問題是,我怎麼能強制解析庫觸發創建一個新的解析後安裝?
,因爲我在這個問題以前問:Clear parse installation cache on Android強制新解析安裝
我想刪除/清除我的Android手機上安裝解析當用戶退出應用程序的。我可以通過腳本從網上刪除解析安裝,然後我必須從手機上的內存/磁盤清除它。
我的問題是,我怎麼能強制解析庫觸發創建一個新的解析後安裝?
我已經能夠使用Android的解析SDK 1.13.1
ParseInstallation installation = ParseInstallation.getCurrentInstallation();
Class clazz = installation.getClass();
Method[] methods = clazz.getDeclaredMethods();
Method method1 = clazz.getDeclaredMethod("getCurrentInstallationController");
method1.setAccessible(true);
Object result = method1.invoke(installation);
Method method2 = result.getClass().getDeclaredMethod("clearFromDisk");
method2.setAccessible(true);
String result2=(String) method2.invoke(result);
Method method3 = result.getClass().getDeclaredMethod("clearFromMemory");
method3.setAccessible(true);
String result3=(String) method3.invoke(result);
每次我的應用程序開始我檢查順利刪除「本地」 ParseInstallation緩存安裝是否可以被保存,如果它我不能重新創建另一個安裝。
這樣,根據您的用例可以安全地從parse-server中刪除安裝,My ParseInstallation僅保留對我的User對象的引用,以便查詢和發送推送通知。
final ParseInstallation installation = ParseInstallation.getCurrentInstallation();
installation.put("user", ParseUser.getCurrentUser());
installation.saveInBackground()
.continueWithTask(new Continuation<Void, Task<Void>>() {
@Override
public Task<Void> then(Task<Void> task) throws Exception {
if (task.isFaulted()) {
try {
ParseInstallation installation = ParseInstallation.getCurrentInstallation();
Class clazz = installation.getClass();
Method[] methods = clazz.getDeclaredMethods();
Method method1 = clazz.getDeclaredMethod("getCurrentInstallationController");
method1.setAccessible(true);
Object result = method1.invoke(installation);
Method method2 = result.getClass().getDeclaredMethod("clearFromDisk");
method2.setAccessible(true);
String result2=(String) method2.invoke(result);
Method method3 = result.getClass().getDeclaredMethod("clearFromMemory");
method3.setAccessible(true);
String result3=(String) method3.invoke(result);
} catch (Exception ex) {
ex.printStackTrace();
}
}
return null;
}
})
希望這是一個毫無意義......