2012-02-07 3 views
1

Я хотел бы узнать, когда пользователь нажал кнопку «Дом» во время работы моего приложения. НО: Проблема в том, что я не хочу редактировать существующий код. Значение Я не хочу добавлять логику к существующим видам деятельности onPause() метод.Ловить, когда пользователь нажал кнопку «Главная»

Единственное решение, которое я нашел, чтобы добавить услугу в приложение, которое прослушивает в журнал обнаружения, если была цель запустить

HOME: Начало: Намерение {действие = android.intent.action .main кот = [android.intent.category.HOME]

есть ли другой способ сделать это, или это действительно невозможно? Оптимальное решение было бы поймать намерение в Manifest.xml, как:

действия андроида: имя = "android.intent.category.HOME"

и реализовать новый класс, чтобы поймать его. (Но, похоже, это не поймает).

+0

Дубликат этого вопроса можно найти здесь: http://stackoverflow.com/questions/4101346/android-how-to-catch-that-the-home-button-was-pressed –

ответ

0

Вы можете использовать ключевой обработчик

public boolean onKeyDown(int keyCode, KeyEvent event) { 
     if (keyCode == KeyEvent.KEYCODE_HOME) { 
      // Home key pressed 
     } else { 
      return super.onKeyDown(keyCode, event); 
     } 
     return false; 
    } 
+1

Кнопка HOME не отправляется на 'onKeyDown()'. – CommonsWare

1

Я хотел бы знать, когда пользователь нажал на кнопку домой, в то время как он работает мое приложение пресс-конференция.

Что конкретно вы пытаетесь достичь?

НО: Проблема в том, что я не хочу редактировать существующий код.

По определению это невозможно.

Единственное решение, которое я нашел, чтобы добавить услугу в приложение, которое прослушивает в журнал обнаружения, если была цель запустить

Это модифицирует код, нарушая свои собственные требования. Более того, для этого требуется разрешение, которое вам действительно не нужно просить.

Есть ли другой способ сделать это или это действительно невозможно?

Это зависит от того, чего конкретно вы пытаетесь достичь.

Оптимальным решением было бы поймать намерение в Manifest.xml ... и реализовать новый класс, чтобы поймать его. (Но, похоже, это не поймает).

HOME является категорией. Это не действие. Домашние экраны - это действия, которые реагируют на действие MAIN в категории HOME.Тем не менее, он изменяет код, нарушая ваши собственные требования.

Смежные вопросы