Java 最近应用中的应用返回到stock launcher,而不是自定义launcher

Java 最近应用中的应用返回到stock launcher,而不是自定义launcher,java,android,android-launcher,Java,Android,Android Launcher,我正在创建一个自定义的启动器,它就像电话亭模式一样使用。这意味着大多数东西都隐藏起来了,但允许用户访问某些应用程序。我注意到,当我从最近的应用列表中启动应用程序时,当我按下后退按钮时,会出现stock launcher,而不是我的自定义launcher。我确保我的自定义启动器是默认的启动器,因为当我按下home按钮时,它会出现。有人碰到过这个问题吗?如何解决此问题?当我遇到同样的问题时,我找到的唯一解决方案是重新启动设备。之后,当您从最近的应用程序启动应用程序并按下“上一步”按钮时,您将看到正确

我正在创建一个自定义的启动器,它就像电话亭模式一样使用。这意味着大多数东西都隐藏起来了,但允许用户访问某些应用程序。我注意到,当我从最近的应用列表中启动应用程序时,当我按下后退按钮时,会出现stock launcher,而不是我的自定义launcher。我确保我的自定义启动器是默认的启动器,因为当我按下home按钮时,它会出现。有人碰到过这个问题吗?如何解决此问题?

当我遇到同样的问题时,我找到的唯一解决方案是重新启动设备。之后,当您从最近的应用程序启动应用程序并按下“上一步”按钮时,您将看到正确的主屏幕。

在我尝试自己创建自定义启动器时,为了获得该结果,您需要禁用默认启动器,这是我使用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();
}
}