1. 程式人生 > >Android監聽解鎖螢幕廣播

Android監聽解鎖螢幕廣播

目的:使用者解鎖螢幕開啟程式

public class ActionReceiver extends BroadcastReceiver {

    @Override
    public void onReceive(Context context, Intent intent) {
            Intent intent1;
            if (LoginUtils.INSTANCE.isLogin()) {
                intent1 = new Intent(context, MainActivity.class);
            } else {
                intent1 = new Intent(context, LoginFragment.class);
            }
            intent1.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
            context.startActivity(intent1);
    }

}


 首先建立一個接收器繼承自BroadCastReceiver,重寫onReceive方法,我再這首先判斷了使用者是否登入,登陸過就進入主介面,至於FLAG_ACTIVITY_NEW_TASK這個的意思就是,我們在廣播中開啟一個Activity的時候必須給intent(意圖)設定Flag的,因為我們處在非Activity的環境中,大家都知道Activity存在於Activity棧中,所以我們在廣播中開啟一個Activity就需要一個新的任務棧容納你要啟動的Activity,這裡指的是Mainactivity,如果所跳轉的Activity所在的棧存在,會直接把這個棧移過來。最後不要忘了在清單檔案註冊 
 

<receiver android:name=".mvp.ui.broadcastreciver.ActionReceiver">
    <intent-filter android:priority="90002">
        <action android:name="android.intent.action.USER_PRESENT" />
    </intent-filter>
</receiver>