Поймать, когда пользователь нажал кнопку Home - PullRequest
1 голос
/ 07 февраля 2012

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

Единственное решение, которое я нашел, было добавить службу в приложение, которое прослушивает журнал, обнаруживающий, если было намерение запустить

HOME: Запуск: Intent {act =android.intent.action.MAIN cat = [android.intent.category.HOME]

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

action android: name = "android.intent.category.HOME"

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

Ответы [ 2 ]

1 голос
/ 07 февраля 2012

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

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

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

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

Единственное решение, которое я нашел, былодобавьте службу в приложение, которое прослушивает журнал, обнаруживающий, было ли намерение запустить

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

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

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

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

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

0 голосов
/ 07 февраля 2012

Вы можете использовать обработчик события нажатия клавиши

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