Переопределить домашнюю кнопку в Android

Мне нужно переопределить кнопку "Домой" для приложения блокировки экрана. И я нашел следующий ответ, который перезапускает приложение через 6 секунд при нажатии кнопки домой.

protected void onUserLeaveHint() {
    Intent i=new Intent(this,MainActivity123.class);        
    startActivity(i.setFlags(Intent.FLAG_ACTIVITY_REORDER_TO_FRONT));
    Toast.makeText(this,"leaveHint",Toast.LENGTH_SHORT).show();
}

Но я хочу немедленно запустить приложение. Так что я думаю, что это был ответ, говорящий, что если мы сделаем приложение Launcher по умолчанию для нашего приложения, то у них не будет промежутка времени. Так что я добавил в свой манифест

<intent-filter>
            <action android:name="android.intent.action.MAIN" />

            <category android:name="android.intent.category.HOME"/>
            <category android:name="android.intent.category.DEFAULT"/>
            <category android:name="android.intent.category.LAUNCHER" />
        </intent-filter>

Но это не работает, и приложение все еще перезапускается через 6 секунд. что я должен делать.

Поэтому проведите еще несколько исследований и найдите другой метод {используется для перехода к экрану по умолчанию в панели запуска, когда вы уже находитесь на главном экране} Метод вызывается автоматически с использованием соответствующего флага в startActivity()

@Override
protected void onNewIntent(Intent intent) {
    super.onNewIntent(intent);
    Toast.makeText(this,"onNewEvent",Toast.LENGTH_SHORT).show();
    if ((intent.getFlags() & Intent.FLAG_ACTIVITY_BROUGHT_TO_FRONT) !=
            Intent.FLAG_ACTIVITY_BROUGHT_TO_FRONT) {
        Toast.makeText(this,"onNewEvent",Toast.LENGTH_SHORT).show();
        //++goHome++
        startActivity(intent);
    }
}

Метод вызывается, но приложение все еще запускается через 6 секунд. ТАК нет прогресса Любое предложение........

1 ответ

Попробуйте переопределить кнопку home, реализовав этот метод:

@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
    if ((keyCode == KeyEvent.KEYCODE_HOME)) {
        Toast.makeText(this, "You pressed the home button!", Toast.LENGTH_LONG).show();                     
        return true;
    }
    return super.onKeyDown(keyCode, event);
}

:) Надеюсь, поможет.

Другие вопросы по тегам