如果我的應用程序正在運行,並且我按下了鎖定屏幕按鈕,它會將該應用程序置於後臺。有什麼方法檢查onPause()是否被調用屏幕鎖定?。提前感謝。檢查是否因屏幕鎖定而調用了onPause活動狀態
回答
您只需檢查屏幕是否打開。
@Override
protected void onPause() {
super.onPause();
PowerManager pm = (PowerManager) getSystemService(Context.POWER_SERVICE);
boolean screenOn;
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT_WATCH) {
screenOn = pm.isInteractive();
} else {
screenOn = pm.isScreenOn();
}
if (screenOn) {
// Screen is still on, so do your thing here
}
}
你只是想知道什麼時候調用onPause?您可以覆蓋超功能,並添加日誌記錄功能:
@Override
public void onPause() {
super.onPause();
System.out.println("On Pause called");
}
我知道.IN的onPause()方法,我需要知道,這是否在onPause由後退按鈕或home鍵或鎖屏 – 2014-09-05 20:32:00
你可以簡單地知道它使用這種方法
@Override
public void onPause() {
super.onPause(); // Always call the superclass method first
System.out.println("On Pause called");
}
如何使設備保持清醒,同時鎖屏。 Documentation.
你的情況好了,你就需要Wake_Lock
要使用喚醒鎖,第一步是將WAKE_LOCK權限添加到您的應用程序的清單文件:
<uses-permission android:name="android.permission.WAKE_LOCK" />
如果您的應用程序包括使用服務做廣告的廣播接收器,您可以通過WakefulBroadcastReceiver來管理您的喚醒鎖定,如Using a WakefulBroadcastReceiver.中所述這是首選方法。如果您的應用程序不遵循這一模式,這裏是你如何直接設置喚醒鎖:
PowerManager powerManager = (PowerManager) getSystemService(POWER_SERVICE); Wakelock wakeLock = powerManager.newWakeLock(PowerManager.PARTIAL_WAKE_LOCK, "MyWakelockTag"); wakeLock.acquire();
要解除鎖定之後,調用wakelock.release().這將釋放你的要求給CPU。一旦應用程序完成使用後釋放喚醒鎖定非常重要,以避免電池電量耗盡。
設置powermanager後,請執行此操作。
boolean screenOn;
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT_WATCH) {
screenOn = powerManager.isInteractive();
} else {
screenOn = powerManager.isScreenOn();
}
if (screenOn) {
// Screen is still on, so do your thing here
}
叫我知道.IN的onPause()方法,我需要知道,是否這個onpause被後退按鈕或主頁按鈕或鎖定屏幕調用 – 2014-09-05 20:30:39
是的,只要你離開你,就會調用'onPause()'方法。 – 2014-09-05 21:46:10
Inpause我正在執行一項操作。現在,我希望此操作在由於屏幕鎖定而導致onpause發生時不會發生。在其他情況下,我希望執行該操作。 – 2014-09-05 22:12:03
- 1. OSX:檢查屏幕是否鎖定
- 2. 在onResume()如何識別onPause()是否因屏幕鎖定或應用程序最小化而被調用
- 3. 是在屏幕超時時調用的活動onPause方法?
- 4. onPause屏幕鎖定與來電差異
- 5. 服務需要檢測工作站是否鎖定,並且屏幕保護程序處於活動狀態
- 6. 屏幕鎖定時的狀態欄android
- 7. 檢測屏幕保護程序是否處於活動狀態和/或用戶是否已在Windows中鎖定屏幕
- 8. Android活動解鎖屏幕
- 9. 我的活動改變了屏幕鎖定方向
- 10. 確定是否屏幕處於活動狀態或不從Windows 8註冊表
- 11. 活動帶來的頂部,而屏幕鎖定
- 12. 檢測應用程序是否從鎖定屏幕打開
- 13. 在窗體中輸入時是否可以檢查大寫鎖定按鈕是否處於活動狀態?
- 14. 檢查是否ActiveRecord的被鎖定在「更新」狀態
- 15. 如何檢查Android中是否設置了密碼或屏幕鎖?
- 16. 如何檢查屏幕鎖是否有密碼?
- 17. 檢查密碼是否存在並在鎖定屏幕上啓用 - Android
- 18. 如何檢查CMS塊是否處於活動狀態?
- 19. 如何檢查AmazonS3Client連接是否處於活動狀態
- 20. PDO:如何檢查連接是否處於活動狀態?
- 21. 檢查表單在vb.net中是否處於活動狀態
- 22. 如何檢查變送器是否處於活動狀態?
- 23. 檢查它是否處於活動狀態
- 24. 如何通過PHP檢查JavaScript是否處於活動狀態?
- 25. 檢查代理是否處於活動狀態
- 26. 如何檢查服務器是否處於活動狀態?(c#)
- 27. 啓用鎖定屏幕時如何啓動活動?
- 28. Java應用程序是否有辦法檢測屏幕是否被鎖定?
- 29. 使用python調用鎖定屏幕
工作沒有第一複雜if語句...非常感謝.. – 2014-09-06 10:45:25
if語句是因爲'isScreenOn()'從API級別20開始不推薦使用,而是指代使用'isInteractive()'。 [PowerManager.isScreenOn()](http://developer.android.com/reference/android/os/PowerManager.html#isScreenOn()) – Nicklas 2014-09-06 14:09:56
是的,我忘了它..非常感謝 – 2014-09-06 16:49:44