2015-11-26 25 views
0

我實現了一個應用程序,它可以正常工作。現在我想知道如何防止睡覺手機,而特定的應用程序正在運行。我嘗試使用實現清醒鎖定現在我想給定的時間運行屏幕保護程序後實施,並再次觸摸屏運行當前應用程序properly.Because使用清醒鎖電話清醒,直到應用run.But用戶離開過一段時間我想運行屏幕保護程序,直到重新開始手機在運行應用程序時醒來

+0

它不明白你想要什麼。使用'WakeLock'可以使設備在運行應用程序時保持清醒狀態。 –

+0

你想保持應用程序運行,或者你想防止屏幕關閉嗎? – RvdK

+0

讓應用程序繼續運行 – Kushan

回答

0

保持畫面On

The最好的方法是在你的活動中使用FLAG_KEEP_SCREEN_ON。

public class MainActivity extends Activity { 
    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_main); 
    getWindow().addFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON); 
    } 

來實現,這是在應用程序的佈局XML文件中,通過使用Android的另一種方式:keepScreenOn屬性:

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    android:keepScreenOn="true"> 
    ... 
</RelativeLayout> 

保持CPU在

如果你需要保持爲了在設備進入睡眠狀態之前完成一些工作,CPU正在運行,您可以使用稱爲喚醒鎖的PowerManager系統服務功能。喚醒鎖定允許您的應用程序控制主機設備的電源狀態。

創建和保持喚醒鎖可能會對主機設備的電池壽命產生巨大影響。因此,只有在嚴格需要的情況下才應使用喚醒鎖,並儘可能縮短時間。例如,您絕不應該在活動中使用喚醒鎖。如上所述,如果您想讓屏幕保持在您的活動中,請使用FLAG_KEEP_SCREEN_ON。

一個合法的情況下使用喚醒鎖可能是需要搶喚醒鎖保持運行做工作,而屏幕關閉CPU的後臺服務。不過,這種做法應該儘量減少,因爲它會影響電池壽命。

要使用喚醒鎖,第一步是將WAKE_LOCK權限添加到您的應用程序的清單文件:

<uses-permission android:name="android.permission.WAKE_LOCK" /> 

如果您的應用程序包括使用服務做了一些工作的廣播接收器,就可以通過WakefulBroadcastReceiver管理您的喚醒鎖,如使用WakefulBroadcastReceiver中所述。這是首選的方法。如果您的應用程序不遵循這一模式,這裏是你如何直接設置喚醒鎖:

PowerManager powerManager = (PowerManager) getSystemService(POWER_SERVICE); 
WakeLock wakeLock = powerManager.newWakeLock(PowerManager.PARTIAL_WAKE_LOCK, 
     "MyWakelockTag"); 
wakeLock.acquire(); 

要解除鎖定之後,調用wakelock.release().這將釋放你的要求給CPU。一旦應用程序完成使用後釋放喚醒鎖定非常重要,以避免電池電量耗盡。

+0

這有助於我獲得正確的idea.thanks !! – Kushan

0

在您的清單中添加該權限:

<uses-permission android:name="android.permission.WAKE_LOCK" /> 

而在你的onCreate補充一點:

@Override 
    protected void onCreate(Bundle icicle) { 
     super.onCreate(icicle);  
     getWindow().addFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON); 
    } 
相關問題