Android監聽解鎖螢幕廣播
阿新 • • 發佈:2019-01-11
目的:使用者解鎖螢幕開啟程式
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>