2013-09-19 5 views
4

Я хотел вызвать определенную функцию для отображения уведомлений при нажатии события homebuttonclick.Главная кнопка click event handling android

Я ссылался на this блог.

Написанный код, как:

@Override 
    public boolean onKeyDown(int keyCode, KeyEvent event){ 
     if(keyCode == KeyEvent.KEYCODE_HOME){ 
      APP_STATUS="SLEEP"; 

      LocalToNotification(); 

     } 
     return true; 
    } 

Но к сожалению он не работает.

Я тестировал через отладчик, но заметил, что отладчик также не отправляется на эту строку кода при нажатии кнопки «домой».

Что не так в вышеуказанном коде?

Пожалуйста, помогите мне.

+0

Вы вообще вводите эту функцию? Или это просто пропустить if (keyCode ...) – RaphMclee

+0

Я хранил отладчик на APP_STATUS = «SLEEP»; его не приступают к этому также –

ответ

7

На старшей версии для Android это работает. Но Android изменил это, потому что они говорят, что «Главная кнопка должна оставаться Home Button», и они не хотят, чтобы кто-то переопределял кнопку «Главная». И по этой причине ваш код больше не работает.

Если вы хотите что-то сделать, когда нажата кнопка дома, сделайте это в методе onPause.

+0

сэр, с onpause это действительно сработало, но не знаю, как это не работает для кода в блоге –

+0

Как я уже сказал, Android не хочет ничего делать на кнопке Home. Если вы посмотрите на ссылку, вы найдете всего 6 ключевых событий, а кнопка «домой» не указана по этой причине, что ее нельзя переопределять. http://docs.appcelerator.com/titanium/latest/#!/api/Titanium.UI.Window-event-android:back –

+0

спасибо, сэр! –

2
protected void onUserLeaveHint() { 

    finish(); 
    super.onUserLeaveHint(); 
} 
+3

Объясните свой ответ. Просто не отвечайте с кодом, всегда включайте в него некоторые объяснения. – vjdhama

+0

Кнопка дома не переопределяет. – user3651677

+0

Но когда мы нажимаем кнопку «Домой» По умолчанию при вызове интерфейса userleaveHint это означает, что пользователь дает подсказку о выходе из приложения – user3651677

1
protected void onUserLeaveHint() 

Added in API level 3 

Вызывается как часть жизненного цикла активности, когда активность собирается идти на задний план как результат выбора пользователя. Например, когда пользователь нажимает клавишу «Домой», вызывается onUserLeaveHint(), но когда входящий телефонный вызов приводит к тому, что актив в вызове автоматически выводится на передний план, onUserLeaveHint() не будет вызываться при прерывании активности , В случаях, когда он вызывается, этот метод вызывается непосредственно перед обратным вызовом onPause().

Этот обратный вызов и onUserInteraction() предназначены для того, чтобы помочь действиям управлять уведомлениями строки состояния интеллектуально; в частности, для оказания помощи в мероприятиях, определяющих надлежащее время для отмены уведомления.

код: -

@Override 
    protected void onUserLeaveHint() 
    { 
     // TODO Auto-generated method stub 
     super.onUserLeaveHint(); 

     new OfflineAsyncTask(BaseActivity.this).execute(); 
    } 
2

ключ постоянный код: домашний ключ. Этот ключ обрабатывается каркасом и никогда не доставляется в приложения.