Как запустить / отобразить временный экран при нажатии кнопки домой [ссылка включена]
Я пытаюсь создать приложение для блокировки детей. Приложение, которое в основном позволяет добавить блокировку от детей со списком разрешенных приложений для использования ребенком.
Большинство компонентов завершены. Я застрял на одном конкретном этапе. В режиме блокировки, если пользователь (ребенок) нажимает клавишу "Домой", я могу перехватить клавишу "Домой" и перезапустить экран режима блокировки, в котором содержится список приложений, к которым можно получить доступ.
Проблема заключается в задержке (около 5-7 секунд) между нажатием кнопки "Домой" и повторным запуском моей активности.
В течение этого периода задержки пользователь (дочерний элемент) может получить доступ к приложениям, которые не заблокированы. Я пытаюсь избежать этой задержки.
В процессе поиска возможного решения вышеуказанной проблемы, я случайно упомянул существующее приложение - "KIDZ ZONE".
Это конкретное приложение рисует пользовательский интерфейс / экран с гораздо меньшей задержкой, около 1 секунды. Я пытаюсь понять, как это может быть воспроизведено.
Мы ценим любые предложения!
Возможные способы, которые я попробовал, - это запуск события трансляции и вызов той же активности. Это работает, но с задержкой в 5-7 секунд, которую я хочу минимизировать.
Основная деятельность -
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
InnerRecevier innerReceiver = new InnerRecevier();
IntentFilter intentFilter = new IntentFilter(Intent.ACTION_CLOSE_SYSTEM_DIALOGS);
registerReceiver(innerReceiver, intentFilter);
}
Приемник вещания -
public class InnerRecevier extends BroadcastReceiver {
final String SYSTEM_DIALOG_REASON_KEY = "reason";
final String SYSTEM_DIALOG_REASON_HOME_KEY = "homekey";
@Override
public void onReceive(final Context context, Intent intent) {
String action = intent.getAction();
if (Intent.ACTION_CLOSE_SYSTEM_DIALOGS.equals(action)) {
String reason = intent.getStringExtra(SYSTEM_DIALOG_REASON_KEY);
if (reason != null) {
if (reason.equals(SYSTEM_DIALOG_REASON_HOME_KEY)) {
Intent i=new Intent(context.getApplicationContext(),MainActivity.class);
i.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TASK);
i.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
context.startActivity(i);
}
}
}
}
}
Я пытаюсь уменьшить задержку, вызванную нажатием кнопки "Домой" и повторным запуском упражнения. Прикрепление файла GIF, чтобы показать, как справочное приложение обрабатывает ожидаемое решение.
Reference - https://imgur.com/ME1dkQP.gif