[英]Prevent app from going on OnPause when turning screen off using partial wakelock
我正在嘗試在屏幕關閉的情況下按下音量上/下按鈕,但是盡管獲得了喚醒鎖,但在按下鎖定按鈕時應用程序仍不會停留在前台。 我在OnPause方法中有一個斷點,當屏幕關閉時會被打斷,我可以使用以下命令通過ADB終端確認喚醒鎖已打開:
adb shell dumpsys power
我忽略了音量按鈕事件,因為它們不相關,但是在屏幕打開時它們確實起作用。 我不知道自己缺少什么,也許我誤會了喚醒鎖的行為方式?
我正在Android 6.0模擬器和Android 7.1.2實體電話中對其進行測試。 在此先感謝您的幫助。
Button getLockBtn;
PowerManager _powerManager;
PowerManager.WakeLock _wakeLock;
protected override void OnCreate(Bundle savedInstanceState)
{
base.OnCreate(savedInstanceState);
RequestWindowFeature(WindowFeatures.NoTitle);
SetContentView(Resource.Layout.Main);
getLockBtn = FindViewById<Button>(Resource.Id.GetLockBtn);
_powerManager = (PowerManager)GetSystemService(PowerService);
_wakeLock = _powerManager.NewWakeLock(WakeLockFlags.Partial, "MyTag");
getLockBtn.Click += (s, e) =>
{
if (_wakeLock.IsHeld)
{
_wakeLock.Release();
getLockBtn.Text = "Get lock";
//Remove the notification
}
else
{
//Here I show a notification
_wakeLock.Acquire();
getLockBtn.Text = "Release lock";
}
};
}
那么像Google Maps這樣的應用如何實現這種行為
屏幕鎖定后,音量控件來自系統,而不是時候應用控件本身.Google Maps對該音量不執行任何操作。
您的問題可能不是在鎖定屏幕下使用音量按鈕,但是在鎖定屏幕時該程序仍然可以工作。
如果您希望任務繼續運行,即使您的活動處於非活動狀態,則也需要使用服務。 https://developer.android.com/guide/components/services.html 。 還可以和一個通知在鎖定屏幕上顯示某些內容。 https://developer.android.com/guide/topics/ui/notifiers/notifications.html
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.