[英]How to use the PowerManager and PARTIAL_WAKE_LOCK
我開發了一個小應用程序,當設備處於睡眠或深度睡眠狀態時(必須按下右鍵關閉屏幕),該應用程序必須始終運行在所有應用程序上,我閱讀了很多有關此應用程序的信息,並且都告訴我方法是使用PowerManager,我的問題是,如果我使用此命令正確,我的結構是> myActivity.class,ReceiverBoot.class和ServiceBoot.class,我在myActivity.class上使用POwerManager類,如下所示:
PowerManager mgr = (PowerManager)this.getSystemService(Context.POWER_SERVICE);
PowerManager wakeLock = mgr.newWakeLock(PowerManager.PARTIAL_WAKE_LOCK | PowerManager.ACQUIRE_CAUSES_WAKEUP , "MyWakeLock");
放在onCreateMethod之后
wakeLock.acquire();
在這之后我有一個
super.onCreate(savedInstanceState);
this.mTimer.scheduleAtFixedRate(
new TimerTask(){
@Override
public void run(){doTask();}
} , 0, 1000);
wakeLock.release();
在清單XML代碼上
<uses-permission android:name="android.permission.WAKE_LOCK" />
並在布局上的XML代碼具有
android:keepScreenOn="true"
但是直到10seg crees總是關閉,但應用程序正在運行時,才可以使用wifi進行投影。
該應用程序可以很好地與wifi conn一起工作,但是當更改為3G conn時,該應用程序不見了,我使用了此命令。 問題是連接到Internet的那種方式??? 非常感謝!
我不清楚您的問題。 無論是數據問題還是屏幕問題。 (或者如果屏幕問題是您要嘗試解決的數據問題?)。
對於屏幕
您沒有使用向右鎖來保持屏幕打開。 PARTIAL_WAKE_LOCK
僅請求您可以使用處理器。 要使屏幕保持在您的應用程序上,請根據您的需要使用SCREEN_DIM_WAKE_LOCK
, SCREEN_BRIGHT_WAKE_LOCK
或FULL_WAKE_LOCK
。 該鎖應在您需要的時間內一直保持。 當前,您正在onCreate()中釋放它。 請記住,即使釋放了鎖定,用戶仍按下電源按鈕(PARTIAL除外)。
如果您只是想在視圖處於活動狀態時保持屏幕打開,則最好不要使用該鎖定。 喚醒鎖需要額外的權限。 您可以通過將其添加到onCreate
重寫中來實現:
getWindow().addFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON);
這與使用android:keepScreenOn="true"
效果相同,您似乎已經在這樣做了。 但是,從您的片段中我無法分辨出為什么這不起作用。 確保您要充氣正確的布局。
為您的數據
當屏幕不活動(並且不存在鎖定)時,設備可能會關閉3G數據。 同樣,不要在需要時釋放鎖(盡管也不要永遠保持它的鎖,這只會消耗手機電池的電量)。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.