Проблема:
Я пишу приложение, в котором я хочу спасти пользователя от случайных выходов.
Например, случайно щелкнув по клавише home и выйдя из приложения.
Поэтому, когда пользователь нажимает клавишу Home,Я хочу показать им диалоговое окно, спрашивающее, действительно ли они хотят выйти из приложения?
Если пользователь выбирает да, тогда выход.
В противном случае просто оставайтесь в приложении.
Я пробовал и видел почти все примеры переполнения стека, но пока что мне это не помогло.
Любые предложения приветствуются.
мин Версия SDK для приложения = 12
целевая Версия Sdk для приложения = 28
Неработающий код:
package com.tivo.homebutton;
import androidx.appcompat.app.AppCompatActivity;
import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.Intent;
import android.content.IntentFilter;
import android.util.Log;
import android.os.Build;
import android.os.Bundle;
import android.view.KeyEvent;
import android.view.WindowManager;
public class MainActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
getWindow().setType((WindowManager.LayoutParams.TYPE_KEYGUARD_DIALOG));
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
}
@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
if (event.getKeyCode() == KeyEvent.KEYCODE_HOME) {
System.out.println("Anil: onKeyDown(): Got a Home Key.");
}
System.out.println("Anil: onKeyDown(): keyCode = " + keyCode);
return super.onKeyDown(keyCode, event);
}
@Override
public boolean dispatchKeyEvent(KeyEvent event) {
if (event.getKeyCode() == KeyEvent.KEYCODE_HOME) {
System.out.println("Anil: dispatchKeyEvent(): Got a Home Key.");
}
System.out.println("Anil: dispatchKeyEvent(): keyCode = " + event.getKeyCode());
return super.dispatchKeyEvent(event);
}
}
Это просто не работает даже после изменениятип окна!
Ребята, у вас есть идеи, как мне это сделать?