При нормальных обстоятельствах, если приложение убито, я ничего не могу сделать. Но у меня есть требование, что когда мое приложение будет убито, мне нужно сообщить серверу приложение мертво. Но когда я инициатива убить мое приложение или мое приложение перерабатывается системой, я ничего не могу сделать, и я не знаю, как сказать, что приложение сервера убито. Что я знаю, это позвонить jni, но я не знаете, как написать jni-код. Кто-нибудь знает это?Как я могу отправить сообщение, когда мое приложение убито (android)
ответ
Попробуйте использовать демон. В этом случае вы можете превратить свой 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);
}
}
. Как это относится к вопросу? Что происходит, когда ваш демон убит? –
Вопрос: «При нормальных обстоятельствах, если приложение убито, я не могу ничего сделать (...), когда мое приложение убито, мне нужно сообщить, что приложение сервера мертво». Решение, приведенное выше, является ответом на этот вопрос. Запустив демон, вы сможете контролировать приложение и сообщать серверу, когда он убит. – mko
- 1. Android: обнаружит, когда приложение убито
- 2. Android geofencing, когда приложение убито
- 3. Не получайте уведомления, когда мое приложение убито
- 4. Мое приложение не отправляется, когда я пытаюсь отправить сообщение.
- 5. Как управлять alarmManager, когда приложение убито (Android)
- 6. Уведомление - когда приложение убито
- 7. Android: продолжайте работать, когда приложение убито
- 8. Как получить событие, когда приложение будет убито?
- 9. Android переназначает тревогу будильника, когда приложение убито
- 10. Как узнать, когда мое приложение собирается убить
- 11. Служба перезагружена, когда приложение убито
- 12. Android - что происходит, когда приложение принудительно убито
- 13. Фоновая служба Android перезагружается, когда приложение убито
- 14. Восстановление Android-приложений, когда приложение убито
- 15. Countdowntimers остановились/уничтожены, когда мое приложение приостановлено/убито/уничтожено?
- 16. Запустить некоторый код, когда приложение убито
- 17. Как запросить данные, когда приложение убито?
- 18. Как я могу отправить сообщение, когда я перетащить элемент
- 19. Push не получен, когда приложение убито
- 20. как я могу отправить сообщение?
- 21. Не удается получить APNS, когда приложение убито
- 22. Как отправить сообщение сервера acknoledge, когда приложение неактивно
- 23. SharedPreferences удаляется, когда приложение убито
- 24. Мое приложение падает, когда я пытаюсь отправить запрос на сервер
- 25. Предотвращение UILocalNotifications, когда приложение убито
- 26. AsyncTask останавливается, когда приложение убито
- 27. Как отлаживать приложение, когда оно было убито
- 28. Как я могу позволить системе андроида убивать мое приложение, когда оно работает в backgroud?
- 29. android - как удалить обновление местоположения IntentService автоматически, когда приложение убито
- 30. Получать оповещения Push PubNub, когда приложение убито
Не уверен, что это будет соответствовать вашим требованиям, но вы можете реализовать соединение Socket с вашим сервером (например, с socket.io). Когда приложение будет убито, соединение сокета будет автоматически закрыто, и ваш сервер узнает, что приложение мертво. – peshkira
Правильно, система по умолчанию будет просто убивать процесс и не уведомлять приложение о его закрытии (следовательно, не позволяет выполнять код пользователя). Что вы можете сделать, так это использовать Сервис для мониторинга состояния приложения. – evident
@evident, если приложение будет убито, будет ли работать приложение? –