2014-10-29 21 views
11

我正在創建一個自定義啓動器,它被用作手機的自助服務終端模式。這意味着大多數東西都隱藏起來,但允許用戶訪問某些應用程序。我注意到,當我從最近的應用程序列表中啓動應用程序時,當我按下後退按鈕時,股票啓動器出現而不是我的自定義啓動器。我確定我的自定義啓動器是默認啓動器,因爲這是按下主頁按鈕時啓動的啓動器。有沒有人遇到過這個問題?我如何解決它?來自Recent Apps的應用返回到股票啓動器而不是自定義啓動器

回答

-1

當我遇到同樣的問題時,唯一的解決方案是重新啓動設備。之後,當您從最近的應用程序啓動應用程序並按下後退按鈕時,您將看到正確的主屏幕。

0

在嘗試自己製作自定義啓動器時,爲了達到上述目的,需要禁用默認啓動器,以便使用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(); 
} 

}

相關問題