簡體   English   中英

如何使用PowerManager和PARTIAL_WAKE_LOCK

[英]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_LOCKSCREEN_BRIGHT_WAKE_LOCKFULL_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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM