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

來源:互聯網
上載者:User

標籤:ase   處理   eww   ble   get   yguard   isa   使用者   一個   

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

 

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 許可權

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

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.