Приложения из последних приложений возвращаются на пусковую установку, а не в обычную пусковую установку

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

Ответ 1

В попытке самостоятельно создать пользовательскую Launcher, чтобы сделать этот результат, вам нужно было отключить пусковую установку по умолчанию, которую я смог сделать с помощью KeyguardManager.

package com.themejunky.locker.services;


public class KeyguardService extends Service {

    BroadcastReceiver mReceiver, mBatteryReceiver;

// Intent myIntent;
public class LocalBinder extends Binder {
    public KeyguardService getService() {
        return KeyguardService.this;
    }
}

@Override
public IBinder onBind(Intent intent) {
    return mBinder;
}

private final IBinder mBinder = new LocalBinder();

@Override
public void onCreate() {
    KeyguardManager.KeyguardLock k1;

    KeyguardManager km = (KeyguardManager) getSystemService(KEYGUARD_SERVICE);
    k1 = km.newKeyguardLock("IN");
    k1.disableKeyguard();

    KeyguardManager keyguardManager = (KeyguardManager)getSystemService(Activity.KEYGUARD_SERVICE);
    KeyguardManager.KeyguardLock lock = keyguardManager.newKeyguardLock(KEYGUARD_SERVICE);
    lock.disableKeyguard();

    IntentFilter filter = new IntentFilter(Intent.ACTION_SCREEN_ON);
    filter.addAction(Intent.ACTION_SCREEN_OFF);
    filter.setPriority(999);

    mReceiver = new LockScreenReceiver();
    registerReceiver(mReceiver, filter);

    mBatteryReceiver = new BatteryReceiver();
    IntentFilter filter2 = new IntentFilter(Intent.ACTION_BATTERY_CHANGED);
    filter2.addAction(Intent.ACTION_BATTERY_OKAY);
    filter2.addAction(Intent.ACTION_BATTERY_LOW);
    registerReceiver(mBatteryReceiver, filter2);

    super.onCreate();
}

@Override
public int onStartCommand(Intent intent, int flags, int startId) {
    return START_STICKY;
}

@Override
public void onDestroy() {
    unregisterReceiver(mReceiver);
    unregisterReceiver(mBatteryReceiver);
    super.onDestroy();
}

}

Ответ 2

Единственное решение, которое я нашел, когда у меня была такая же проблема, - это перезапуск устройства. Когда вы запускаете приложения из последних приложений после этого и нажимаете кнопку "Назад", вы увидите правильный домашний экран.