Я хочу выполнить некоторую операцию, когда мое приложение будет убито. Какой метод можно использовать для этого? Я работаю над Android 5.0.Android приложение убить захват событий
ответ
Вы можете использовать метод onDestoy() вашей деятельности.
Ключ этого вопроса состоит в том, что:
вы должны понять, ваше приложение может ли получить какие-либо дополнительные функции обратного вызова когда приложение погибают в любых видах ситуации.
Следующий ответ ответил Devunwired в этом вопросе:
Android app doens't call "onDestroy()" when killed (ICS)
Это поможет вам больше, чтобы понять это.
Ваше приложение не будет получать какие-либо дополнительные функции обратного вызова, если процесс завершается его внешними средствами (т.е. убиты по причинам памяти или пользователь Сила останавливает приложение). Вам нужно будет выполнить обратные вызовы, которые вы получили, когда приложение зашло в фоновое окно для очистки вашего приложения.
finish()
вызывается системой только в том случае, если пользователь нажимает кнопку «НАЗАД» из вашей операции, хотя она часто вызывается непосредственно приложениями для выхода из режима «Активность» и возврата к предыдущей. Это не технически обратный вызов жизненного цикла.
onDestroy()
получает только вызов в результате вызова finish()
, поэтому, главным образом, только когда пользователь нажимает кнопку BACK. Когда пользователь нажимает кнопку «ДОМ», активность переднего плана проходит только через onPause()
и onStop()
.
Это означает, что Android не обеспечивает большую обратную связь с Activity, чтобы дифференцировать пользователя, идущего домой, или переход на другую активность (из вашего приложения или любого другого); сама деятельность просто знает, что она больше не находится на переднем плане. Приложение для Android представляет собой более свободную коллекцию видов деятельности, чем плотная интегрированная уникальная концепция (например, вы можете использовать ее на других платформах), поэтому нет реальных системных обратных вызовов, чтобы знать, когда приложение в целом было перенесено или движется назад.
В конечном счете, я настоятельно призываю вас пересмотреть архитектуру приложения, если она опирается на знание того, является ли ЛЮБАЯ деятельность в вашем приложении на переднем плане, но в зависимости от ваших потребностей могут быть другие способы, более дружественные к структуре выполните это. Один из вариантов заключается в том, чтобы связать Service
внутри вашего приложения, к которому привязывается каждый Activity
, пока он активен (то есть между onStart()
и onStop()
). Это дает вам возможность использовать тот факт, что связанный Service
живет только до тех пор, пока клиенты привязаны к нему, поэтому вы можете контролировать методы onCreate()
и onDestroy()
службы, чтобы знать, когда текущая задача переднего плана не является частью вашей заявки.
Вы также можете найти this article, написанный Dianne Hackborn, чтобы быть интересным, охватывающим более подробно архитектуру Android и то, как Google считает, что она должна использоваться.
Вы должны использовать класс обслуживания для него как -
public class Myservice extends Service { @Nullable @Override public IBinder onBind(Intent intent) { return null; }
@Override public int onStartCommand(Intent intent, int flags, int startId) { Log.d(Constants.TAG, "Service Started"); return START_NOT_STICKY; }
@Override public void onDestroy() { super.onDestroy(); Log.d(Constants.TAG, "Service Destroyed"); }
@Override public void onTaskRemoved(Intent rootIntent) { Log.e(Constants.TAG, "END"); //Perfome here want you want to do when app gets kill stopSelf(); } }
манифеста -
<service android:name="Myservice"
android:stopWithTask="false" />
В Oncreate
вашей пусковой деятельности или приложений класса для запуска службы -
startService(new Intent(getBaseContext(), OnClearFromRecentService.class));
- 1. Убить приложение в Android
- 2. Android. Как убить приложение?
- 3. Убить приложение для Android Android
- 4. Убить текущее приложение в обход закрытых событий
- 5. Как убить приложение для Android
- 6. Как убить приложение android onButtonClick
- 7. Как убить другое приложение Android
- 8. Захват событий касания в Xamarin.Forms для Android
- 9. Убить приложение
- 10. Захват событий Outlook
- 11. Как убить приложение Android из диспетчера задач?
- 12. Android не может убить приложение. Применение перезапускает
- 13. Как убить мое приложение в Android?
- 14. Как убить приложение Android в фоновом режиме
- 15. Захват событий в ngTable
- 16. Захват всех событий прокрутки
- 17. Захват событий JavaScript «молча»
- 18. Захват событий в JavaScript
- 19. Захват событий браузера
- 20. Захват всех событий DOM
- 21. убить приложение, когда флажок
- 22. Не удалось убить запущенное приложение
- 23. Захват ключевых событий в Silverlight
- 24. Захват оконных событий в NSDocument
- 25. андроид гибернации убить приложение - OnDestroy
- 26. Как убить отчеты с большим количеством событий
- 27. Как определить, убить приложение
- 28. убить приложение после сбоя
- 29. убить приложение в Iphone
- 30. Как убить мобильное приложение?
Пробовал использовать onDestroy(), но он не работает, я должен захватить приложение, получающее событие kill ... –
Затем вы должны попробовать создать отдельное приложение-приложение, которое будет захватывать это событие. – Tony
Спасибо! Эта проблема была решена путем создания сценария оболочки, который будет работать в фоновом режиме и будет отслеживать статус процесса приложения. После того, как процесс поиска будет отсутствовать, он вызовет задачу, которая должна быть завершена. –