정상적인 상황에서 앱이 죽으면 아무 것도 할 수 없습니다.하지만 내 앱이 죽으면 서버에 알려야합니다. 앱이 죽었습니다.하지만 앱을 죽이려는 계획이나 앱이 시스템에 의해 재활용 될 때 나는 아무것도 할 수 없으며 서버 앱을 죽이는 방법을 알지 못합니다. 내가 아는 것은 jni에게 전화하는 것이지만 그렇지 않습니다. jni 코드를 작성하는 방법을 알고 있습니다. 누구든지 그것을 알고 있습니까?내 앱이 죽을 때 어떻게 메시지를 보낼 수 있습니까 (안드로이드)
-2
A
답변
0
데몬을 사용해보십시오. 이 경우 자바 프로세스를 데몬으로 전환하고 주 프로세스를 완료 할 수 있습니다.
여기를보세요 : 일반적으로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);
}
}
+0
어떻게 문제를 해결할 수 있습니까? 데몬이 죽을 때 어떻게됩니까? –
+0
질문 - "정상적인 상황에서 앱이 죽으면 앱을 죽일 때 아무 것도 할 수 없습니다 (...) 서버 앱이 죽었다는 것을 말해야합니다." 위의 해결책은 그 질문에 대한 대답입니다. 데몬을 실행하면 앱을 모니터링하고 서버가 죽을 때이를 알릴 수 있습니다. – mko
귀하의 요구 사항을 충족 시키지만 서버 (예 : socket.io)에 소켓 연결을 구현할 수 있는지 확실하지 않습니다. 응용 프로그램이 종료되면 소켓 연결이 자동으로 닫히고 서버에서 응용 프로그램이 종료되었음을 알게됩니다. – peshkira
맞아요, 기본 응용 프로그램 시스템은 프로세스를 죽이고 응용 프로그램이 닫히고 있음을 알리지 않고 (따라서 사용자 코드를 실행할 수 없게됩니다). 할 수있는 일은 서비스를 사용하여 앱의 상태를 모니터링하는 것입니다. – evident
@evident 앱이 죽으면 앱 작동 서비스가 작동합니까 ??? –