最近应用程序中的应用程序退回到库存启动器而不是自定义启动器

Posted

技术标签:

【中文标题】最近应用程序中的应用程序退回到库存启动器而不是自定义启动器【英文标题】:Apps from Recent Apps back out to stock launcher instead of custom launcher 【发布时间】:2014-12-25 16:28:45 【问题描述】:

我正在创建一个自定义启动器,该启动器用作电话的信息亭模式。这意味着大多数东西都被隐藏起来,但允许用户访问一些应用程序。我注意到,当我从“最近的应用程序”列表启动应用程序时,当我按下返回按钮时,会出现股票启动器而不是我的自定义启动器。我确保我的自定义启动器是默认启动器,因为这是我按下主页按钮时出现的启动器。有没有人遇到过这个问题?我该如何解决?

【问题讨论】:

【参考方案1】:

在我尝试自己制作自定义启动器时,要获得该结果,您需要禁用默认启动器,我可以使用 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】:

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

【讨论】:

以上是关于最近应用程序中的应用程序退回到库存启动器而不是自定义启动器的主要内容,如果未能解决你的问题,请参考以下文章

当远程但不是本地时,Socket.io 退回到 nginx 代理后面的轮询(websocket 给出 400)

C++,bool 转换是不是总是退回到 void* 的隐式转换?

关于c语言 转义字符的退格

VS2012中的内存分析现有进程

使用vue开发webApp,安卓手机自带回退键的问题解决

如何判断 DXVA 解码器是不是已退回到软件解码