我們程序偶爾會有需要屏幕一直或較長時間的保持喚醒狀態,而用戶的睡眠時間又設置的比較短。這時可能會對程序以及用戶的使用造成一定的影響。在Android中有兩種方法,可以讓我們在我們需要保持喚醒的頁面長時間保持喚醒狀態
1.Android的電源管理里面提供了“喚醒鎖”,它允許我們的設備屏幕能在一定的時間內或一直保持喚醒狀態!如下為其簡單使用步驟:
申請喚醒鎖使用權限
1 <uses-permission android:name="android.permission.WAKE_LOCK"/>
獲取電源管理對象
1 PowerManager powerManager = (PowerManager)this.getSystemService(this.POWER_SERVICE);
獲取喚醒鎖對象
1 WakeLock wakeLock = this.powerManager.newWakeLock(PowerManager.FULL_WAKE_LOCK, "My Lock");
請求喚醒鎖
1 protected void onResume() { 2 super.onResume(); 3 //一直處於喚醒狀態, 除非使用release釋放喚醒鎖 4 wakeLock.acquire(); 5 //喚醒給定時間 6 wakeLock.acquire(long timeout); 7 }
釋放喚醒鎖
1 protected void onPause() { 2 super.onPause(); 3 wakeLock.release(); 4 }
如果使用了acquire的方式,除非是用戶將程序退出,或是手動按電源鍵關閉屏幕,否則屏幕將處一直處於喚醒狀態。
2.使用窗口管理器提供的屏幕保持喚醒的方式
1 protected void onCreate(Bundle icicle) { 2 super.onCreate(icicle); 3 // 設置標志以使此Activity處於喚醒狀態 4 getWindow().addFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON); 5 setContentView(); 6 }
此種方式的好處是不用擔心釋放的問題,頁面退出了,就自動解除了喚醒狀態,進入到正常的模式中