使用部分唤醒锁关闭屏幕时防止应用程序进入 OnPause
Prevent app from going on OnPause when turning screen off using partial wakelock
我试图在屏幕关闭的情况下捕捉音量 Up/Down 按钮的按下,但是尽管获得了唤醒锁,但在按下锁定按钮时应用程序不会停留在前台。我在 OnPause 方法中有一个断点,当屏幕关闭时它会被击中,我可以通过 ADB 终端使用以下命令确认唤醒锁已打开:
adb shell dumpsys power
我省略了音量按钮事件,因为它们不相关,但它们在屏幕打开时起作用。
我不知道我错过了什么,也许我误解了唤醒锁的行为方式?
我正在 Android 6.0 的模拟器中和 Android 7.1.2 的物理 phone 中对其进行测试。
在此先感谢您的帮助..
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";
}
};
}
So how do apps like Google Maps achieve that behavior
屏幕锁定时,音量控制来自系统,不是应用控制的时候itself.Google地图对音量没有任何作用。
您的问题可能不是锁屏下音量键的使用问题,但锁屏后程序仍然可以正常运行。
如果您希望任务继续 运行,即使您的 Activity 未处于活动状态,您也需要使用服务。 https://developer.android.com/guide/components/services.html。
也可以和一个通知在锁定屏幕上显示一些东西。 https://developer.android.com/guide/topics/ui/notifiers/notifications.html
我试图在屏幕关闭的情况下捕捉音量 Up/Down 按钮的按下,但是尽管获得了唤醒锁,但在按下锁定按钮时应用程序不会停留在前台。我在 OnPause 方法中有一个断点,当屏幕关闭时它会被击中,我可以通过 ADB 终端使用以下命令确认唤醒锁已打开:
adb shell dumpsys power
我省略了音量按钮事件,因为它们不相关,但它们在屏幕打开时起作用。 我不知道我错过了什么,也许我误解了唤醒锁的行为方式?
我正在 Android 6.0 的模拟器中和 Android 7.1.2 的物理 phone 中对其进行测试。 在此先感谢您的帮助..
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";
}
};
}
So how do apps like Google Maps achieve that behavior
屏幕锁定时,音量控制来自系统,不是应用控制的时候itself.Google地图对音量没有任何作用。
您的问题可能不是锁屏下音量键的使用问题,但锁屏后程序仍然可以正常运行。
如果您希望任务继续 运行,即使您的 Activity 未处于活动状态,您也需要使用服务。 https://developer.android.com/guide/components/services.html。 也可以和一个通知在锁定屏幕上显示一些东西。 https://developer.android.com/guide/topics/ui/notifiers/notifications.html