在正常情况下,如果应用程序被杀,我无法做任何事情。但我有一个要求是,当我的应用程序被杀时,我需要告诉服务器应用程序死了。但是当我主动杀死我的应用程序或我的应用程序是由系统回收,我不能做任何事情,我不知道如何告诉服务器应用程序被杀。我知道是打电话给jni,但我不知道如何写jni代码。有谁知道吗?
答案 0 :(得分:0)
尝试使用守护程序。在这种情况下,您可以将您的java进程转换为守护进程并完成主进程。
看看这里:
https://github.com/mkowsiak/jnicookbook/tree/master/recipeNo022
通常,您希望妖魔化您的原生代码。
...
...
int demonize() {
int pid = fork();
switch ( pid ) {
case -1:
return (-1);
case 0:
break;
default:
return pid;
}
return 0;
}
...
...
int pid = demonize();
if( pid == 0 ) {
while(1) {
sleep(1);
fprintf(fid, "daemon\n");
fflush( fid );
}
}