正如我之前在这个问题中提出的那样:Clear parse installation cache on Android
当用户退出应用程序时,我想删除/清除Android手机上的解析安装。我可以通过网络上的脚本删除解析安装,然后我必须从手机上的ram / disk清除它。
我的问题是,在我这样做之后,如何强制解析库触发创建新的解析安装?
答案 0 :(得分:1)
我已成功删除了本地' ParseInstallation缓存使用 android解析sdk 1.13.1
#include <cstdio>
#include <cstdlib>
#include <cstring>
#include <cstdarg>
#include <math.h>
int randomNumber = 0;
int Random(){
randomNumber++;
return randomNumber;
}
struct CStructure{
int rep;
int (*FunctionRandom) ();
};
CStructure* ConstructorCS(CStructure** myCS, int rep, int(*myFunctionRandom)(void)){
*myCS = (CStructure*) malloc (sizeof(CStructure));
(*myCS)->rep = rep;
(*myCS)->FunctionRandom = myFunctionRandom;
}
void ExecuteCStructure(CStructure* myCS){
int counter = 0;
int randomNumbers[myCS->rep];
char* text;
while(counter < (myCS->rep)){
//here i receive a number from the function
randomNumbers[counter] = myCS->FunctionRandom();
printf("\n number generated by the function: %d", randomNumbers[counter]);
counter++;
}
}
int test01(){
CStructure* code;
ConstructorCS(&code, 3, &Random);
ExecuteCStructure(code);
}
int main(){
test01();
}
每次我的应用程序启动时,我都会检查是否可以保存安装,如果它不能重新创建另一个安装。
这样,根据您的使用情况,从parse-server删除安装是安全的,My ParseInstallation只保存对User对象的引用,以便我可以查询和发送Push通知。
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);
希望这有点意义......