PARTIAL_WAKE_LOCK:保持CPU 运转,屏幕和键盘灯有可能是关闭的。
SCREEN_DIM_WAKE_LOCK:保持CPU 运转,允许保持屏幕显示但有可能是灰的,允许关闭键盘灯
SCREEN_BRIGHT_WAKE_LOCK:保持CPU 运转,允许保持屏幕高亮显示,允许关闭键盘灯
FULL_WAKE_LOCK:保持CPU 运转,保持屏幕高亮显示,键盘灯也保持亮度
ACQUIRE_CAUSES_WAKEUP:强制使屏幕亮起,这种锁主要针对一些必须通知用户的操作.
ON_AFTER_RELEASE:当锁被释放时,保持屏幕亮起一段时间**

方法(一)

 [BroadcastReceiver(Enabled = true)]
public class AlarmService : BroadcastReceiver
{
//public event EventHandler WakeLockStatusChanged;
public override void OnReceive(Context context, Intent intent)
{
PowerManager pm = (PowerManager)context.GetSystemService(Context.PowerService);
PowerManager.WakeLock wl = pm.NewWakeLock(WakeLockFlags.Partial, "MyWakelockTag");
wl.Acquire();
//if (wl.IsHeld)
//{
// wl.Release();
//}
}
}
  private void InitBroadcastReceiver()
{
_alarmService = new AlarmService();
Application.Context.RegisterReceiver(_alarmService, new IntentFilter(ConnectivityManager.ConnectivityAction));
} protected override void OnStart()
{
base.OnStart();
InitBroadcastReceiver();
} protected override void OnStop()
{
base.OnStop(); if (_alarmService != null)
{
Application.Context.UnregisterReceiver(_alarmService);
_alarmService = null;
} }

方法(二)

    //获取电源锁,保持该服务在屏幕熄灭时仍然获取CPU时,保持运行
private void AcquireWakeLock()
{
if (null == _wakeLock)
{
PowerManager pm = (PowerManager)GetSystemService(Context.PowerService);
_wakeLock = pm.NewWakeLock(WakeLockFlags.Partial | WakeLockFlags.OnAfterRelease, "MyWakelockTag");
if (_wakeLock != null)
{
_wakeLock.Acquire();
}
}
} //释放设备电源锁
private void ReleaseWakeLock()
{
if (null != _wakeLock || _wakeLock.IsHeld)
{
_wakeLock.Release();
_wakeLock = null;
}
}

参考资料:
https://docs.microsoft.com/zh-cn/dotnet/api/Android.OS.PowerManager.NewWakeLock?view=xamarin-android-sdk-9#Android_OS_PowerManager_NewWakeLock_Android_OS_WakeLockFlags_System_String_

https://stackoverflow.com/questions/54532221/prevent-app-from-going-on-onpause-when-turning-screen-off-using-partial-wakelock/54548392?r=SearchResults#54548392

http://www.itgo.me/a/x9010099145016859770/xamarin-forms-broadcast-receiver-not-working-when-app-is-closed

xamarin/xamarin.forms 在锁屏电源唤醒时保持后台运行的更多相关文章

  1. 手机锁屏js倒计时停止问题解决办法探索

    如图,有这么个需求,测试人员在测试过程中提了一个bug,手机锁屏再唤醒倒计时时间没有更新,仍从锁屏的时间继续,于是开始寻找解决之法 经了解得知,锁屏时候,浏览器的一切活动会停止运行,那么js也无法幸免 ...

  2. Flyme密码验证策略升级,忘记锁屏密码及「关机密码」功能

      手机里有很多需要用到密码的地方,比如「手机密码」.「文档锁定区」.「应用加密」.「隐私模式」.忘记密码可是一件麻烦事,以前只能通过清除数据或格式化存储盘来解决.现在有了「关联魅族账号」功能,这些功 ...

  3. android开发 锁屏 真正的锁屏,是go锁屏那种。

    想做个锁屏界面很久了,最近一周,历经千辛万苦,越过种种挫折,终于完美实现了这一要求,在此将锁屏思路分享出来. 注意:这不是什么一键锁屏,是类似“go锁屏”那样的锁屏界面. 准备:本程序共需要 两个ac ...

  4. Android-服务中监听电源键和Home键的广播、在锁屏下仍然工作的方法

    Android-服务中监听电源键和Home键的广播  http://blog.csdn.net/u014657752/article/details/49512485 Android开发之如何监听让服 ...

  5. android中按电源键锁屏然后解锁导致Activity调用onDestory以及如何防止锁屏

    今天在android项目中按电源键锁屏,然后解锁,发现子Activity关闭了,回到了主页,这个问题困扰了我很久,最后打log发现,在按电源键的时候,调用了子Activity的onDestroy()方 ...

  6. MTK 锁屏配置

    常常我们开 发程序的时候我们不需要系统唤醒系统锁屏功能,用户有时候在看电视或视频的时候不希望系统的锁屏 功能启动,既不想锁频,然而系统却在我们看电视或者视频的时候出来个锁屏的界面进行锁频拉,我们还要想 ...

  7. 关于关闭WPS锁屏屏保及设置电脑自动关闭显示屏及休眠的分享

    最近公司工作的电脑突然自动加上了屏保锁屏,百思不得其解什么时候设置的,谁给设置的,未经用户允许就擅自给用户设置了??? 金山WPS未经用户允许给用户设置了锁屏屏保,而且这个功能非常不好用,按键盘有时候 ...

  8. 锁屏上显示Activity

    在Android中,有些比较强的提醒,需要用户紧急处理的内容.需要唤醒屏幕,甚至在锁定屏幕的情况下,也要显示出来.例如,来电界面和闹钟提醒界面.这是怎样实现的呢? 其实,实现起来非常简单.只要给Act ...

  9. 实现:编辑短信,按power键锁屏后,再点亮屏幕,进入的还是编辑短信界面,按返回键才会进入解锁界面。

    描述:在编辑短信界面按电源键锁屏后,重新按电源键点亮屏幕,并没有进入到锁屏界面而是在编辑短信界面,此时短信界面悬浮与锁屏界面之上,这时按返回键关闭编辑短信界面,回到锁屏界面,是如何实现的呢,只需要在需 ...

随机推荐

  1. docker stack 部署 mssql

    =============================================== 2019/12/8_第1次修改                       ccb_warlock == ...

  2. mybatis逆向生成dao mapper和example.java文件

    mabatis插件 <plugin> <groupId>org.mybatis.generator</groupId> <artifactId>myba ...

  3. C#字符串连接问题(包含破折号和引号)

    1.需求场景: 生成字符串如下:jsonStr.Append("\"SensorTypes\":"); 解决方法: string code = @"j ...

  4. MySQL数据库汇总

    -- mysql的最大连接数:默认为 100   -- mysql的增删改查   -- mysql统计各个字段(case when 用法 注:也可以使用其他的)   select (case when ...

  5. tf常见的损失函数(LOSS)汇总

    损失函数在机器学习中用于表示预测值与真实值之间的差距.一般而言,大多数机器学习模型都会通过一定的优化器来减小损失函数从而达到优化预测机器学习模型参数的目的. 哦豁,损失函数这么必要,那都存在什么损失函 ...

  6. 个人项目(JAVA实现)

    一:Github项目地址:https://github.com/candy07213/WC 二:PSP表格 PSP2.1 Personal Software Process Stages 预估耗时(分 ...

  7. 【Tomcat】虚拟主机

    <Host name="localhost" appBase="webapps" unpackWARs="true" autoDepl ...

  8. elasticsearchTemplate操作es

    ElasticsearchTemplate是spring对java api的封装 maven依赖: <dependency> <groupId>org.springframew ...

  9. 为什么说pt-osc可能会引起主从延迟,有什么好办法解决或规避吗?

    若复制中binlog使用row格式,对大表使用pt-osc把数据从旧表拷贝到临时表,期间会产生大量的binlog,从而导致延时 pt-osc在搬数据过程中insert...select是有行锁的,会降 ...

  10. 通过request获取服务器相对路径及绝对路径

    一. String scheme = request.getScheme();//http String serverName = request.getServerName();//localhos ...