Android 使用Wake Lock

來源:互聯網
上載者:User

標籤:產生   gets   start   功能   size   miss   man   bsp   開啟   

為了延長電池的使用壽命,Android裝置會在一段時間後使螢幕變暗,然後關閉螢幕顯示,最後停止CPU。WakeLock是一個電源管理系統服務功能,應用程式可以使用它來控制裝置的電源狀態。

        WakeLock可以用來保持CPU運行,避免螢幕變暗和關閉,以及避免鍵盤背光燈熄滅。

                        注意:

                        建立和使用Wake Lock會對應用程式造成的電池電量消耗產生顯著的影響。因此,最好只在

                       確實有必要時使用Wake Lock,並且使用它們的時間越少越好,只要有可 能就釋放它們。

        螢幕Wake Lock通常用於在使用者觀看螢幕但是很少與螢幕進行互動期間(例如,播放視頻)防止螢幕變暗。

        CPU Wake Lock用於防止裝置進入休眠狀態,直至執行了一個操作。當服務從意圖接收器內啟動時常常出現這種情況,因為意圖接收器可能在裝置休眠期間接收意圖。值得注意的是,在這種情況下,系統將在廣播接收器的整個onReceive處理常式中使用CPU Wake Lock。

                        注意:

                        如果在廣播接收器的onReceive處理常式中啟動一個服務或廣播一個意圖,那麼有可能在服務

                       啟動以前,所使用的Wake Lock就會被釋放。為了確保服務能夠執行,需要放置一個獨立的Wake Lock。

        要建立一個Wake Lock,需要調用電源管理器的newWakeLock,並指定一下一種WakeLock類型:

        *  FULL_WAKE_LOCK    保持螢幕全亮、鍵盤背光燈點亮和CPU運行。

        *  SCREEN_BRIGHT_WAKE_LOCK   保持螢幕全亮和CPU運行。

        *  SCREEN_DIM_WAKE_LOCK   保持螢幕開啟(但是讓它變暗)和CPU運行。

        *  PARTIAL_WAKE_LOCK   保持CPU運行。

[java] view plain copy
  1. PowerManager pm = (PowerManager)getSystemService(Context.POWER_SERVICE);  
  2. WakeLock wakeLock = pm.newWakeLock(PowerManager.PARTIAL_WAKE_LOCK, "MyWakeLock");  

 

        建立Wake Lock後,可以通過調用acquire來擷取它。可以有選擇地指定一個逾時值來確保將在儘可能長的時間內保持使用Wake Lock。當為某個動作使用Wake Lock,而該動作做完成時,需要調用release來讓系統管理電源狀態。 下面程式顯示了建立、擷取和釋放Wake Lock的一個典型的使用模式。

[java] view plain copy
  1. PowerManager pm = (PowerManager)getSystemService(Context.POWER_SERVICE);  
  2. WakeLock wakeLock = pm.newWakeLock(PowerManager.PARTIAL_WAKE_LOCK, "MyWakeLock");  
  3. wakeLock.acquire();  
  4. /** Do things requiring the CPU stay active */  
  5. wakeLock.release();  


需要許可權:<uses-permission android:name="android.permission.WAKE_LOCK"/>

Android 使用Wake Lock

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.