я хочу, чтобы пользователь нажал кнопку "домой", мой сервис будет остановлен, это мой код, но он не работает для меня, пожалуйста, помогите мне:
@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
if (keyCode == KeyEvent.KEYCODE_HOME) {
stopService(new Intent(this, MyService.class));
return true;
}
return super.onKeyDown(keyCode, event);
}
благодаря
Если вы пытаетесь удостовериться, что служба работает только в том случае, если соответствующая активность видна, лучшим решением было бы остановить службу в методе onPause() любой активности, которую выполняет пользователь. Таким образом, событие обрабатывается, когда пользователь нажимает "назад" и когда пользователь нажимает "домой".
Аналогично, вы можете привязать свое обслуживание к активности (или действиям). Связанная служба будет уничтожена, когда все связанные с ней действия прекратятся.
public static final int KEYCODE_HOME
Этот ключ обрабатывается каркасом и никогда не доставляется в приложения.
Сделайте активность root и добавьте это,
@Override
public void onTrimMemory(int level) {
super.onTrimMemory(level);
if (level == ComponentCallbacks2.TRIM_MEMORY_UI_HIDDEN) {
// Get called every-time when application went to background.
System.exit(0);
}
}
расширьте каждое действие с помощью rootActivity, оно отключится при нажатии кнопки home/menu