2016-12-07 1 views
-2

Dans des circonstances normales, si l'application est tuée, je ne peux rien faire.Mais j'ai une demande est que lorsque mon application est tuée, je dois dire au serveur L'application est morte.Mais quand j'ai l'initiative de tuer mon application ou mon application est recyclé par le système, je ne peux rien faire et je ne sais pas comment dire application du serveur est tué.Que je sais est d'appeler Jni, mais je ne sais pas savoir comment écrire le code jni. Quelqu'un le sait-il?Comment puis-je envoyer un message lorsque mon application est tué (android)

+1

Vous ne savez pas si cela répond à vos exigences, mais vous pouvez implémenter une connexion Socket à votre serveur (par exemple avec socket.io). Une fois l'application supprimée, la connexion au socket se fermera automatiquement et votre serveur saura que l'application est morte. – peshkira

+0

À droite, le système d'application par défaut va simplement tuer le processus et ne pas avertir l'application qu'il est en cours de fermeture (ce qui ne permet pas d'exécuter le code utilisateur). Ce que vous pouvez faire est d'utiliser un service pour surveiller l'état de l'application. – evident

+0

@evident si l'application se fait tuer le service de l'application fonctionne ??? –

Répondre

0

Essayez d'utiliser le démon. Dans ce cas, vous pouvez transformer votre processus java en démon et terminer le processus principal.

Jetez un oeil ici:

https://github.com/mkowsiak/jnicookbook/tree/master/recipeNo022

En général, vous voulez diaboliser votre code natif.

... 
... 
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

Comment cela répond à la question? Que se passe-t-il lorsque votre démon est tué? –

+0

Question était - "Dans des circonstances normales, si app est tué, je ne peux rien faire (...) lorsque mon application est tuée, je dois dire que l'application du serveur est mort.". La solution ci-dessus est une réponse à cette question. En exécutant le démon, vous pouvez surveiller l'application et laisser le serveur savoir quand il est tué. – mko