android保持服務不休眠(持續運行)以及喚醒屏幕的方法


假設有這樣一個應用場景,一個服務一直在默默的工作(比如即時地獲取服務器的消息),即使在屏幕已經因為長時間無操作而關閉,或者用戶按了電源鍵讓屏幕關閉,手機進入休眠狀態,他必須依然在工作中。一旦從服務器獲取到消息,他能點亮屏幕,然后進行一些處理工作。

 

1、讓服務持續運行而不受手機休眠的影響,要這樣處理:

在onCreate里面添加:

pm = (PowerManager)MyApplicationHolder.getContext().getSystemService(Context.POWER_SERVICE);  
wl = pm.newWakeLock(PowerManager.PARTIAL_WAKE_LOCK, "myservice");  
wl.acquire();  

在onDestroy里添加:

wl.release();  

這樣就完成了,這個服務里如果做了一個定時器的話,他會一直運行。

2、讓手機從休眠狀態喚醒的方法:

KeyguardManager km = (KeyguardManager)MyApplicationHolder.getContext().getSystemService(Context.KEYGUARD_SERVICE);  
KeyguardLock kl = km.newKeyguardLock("unlock");  
kl.disableKeyguard();  
  
PowerManager pm = (PowerManager)MyApplicationHolder.getContext().getSystemService(Context.POWER_SERVICE);  
PowerManager.WakeLock wl = pm.newWakeLock(PowerManager.ACQUIRE_CAUSES_WAKEUP|PowerManager.FULL_WAKE_LOCK, "bright");  
wl.acquire();  
wl.release();  

注意,使用這個方法屏幕不能設鎖。需android.permission.DISABLE_KEYGUARD 權限


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM