首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

Android:关闭屏幕后服务不起作用

Android中,关闭屏幕后服务不起作用的问题可能是由于系统的电源管理策略导致的。为了延长设备的电池寿命,Android系统会在屏幕关闭后自动进入休眠状态,此时后台服务可能会被系统暂停或者限制。

为了解决这个问题,可以采取以下几种方法:

  1. 使用前台服务:将服务设置为前台服务,这样系统会认为该服务对用户可见,不会被系统暂停或限制。可以通过调用startForeground()方法将服务设置为前台服务,并在通知栏显示一个持续可见的通知。
  2. 使用唤醒锁:可以通过使用唤醒锁来阻止设备进入休眠状态。唤醒锁可以确保设备在屏幕关闭后仍然保持唤醒状态,从而保证后台服务正常运行。可以通过PowerManager类来获取唤醒锁,并在服务运行期间持有该锁。
  3. 使用JobScheduler:Android提供了JobScheduler API来调度后台任务,可以在指定的时间间隔或者满足特定条件时执行任务。JobScheduler可以利用系统的资源调度机制,确保任务在合适的时机执行,即使屏幕关闭也可以正常工作。
  4. 使用AlarmManager:可以使用AlarmManager来设置定时任务,在指定的时间间隔内唤醒设备并执行任务。通过设置唤醒时间和重复间隔,可以保证服务在屏幕关闭后仍然正常运行。

总结起来,解决Android关闭屏幕后服务不起作用的问题可以采用前台服务、唤醒锁、JobScheduler或AlarmManager等方式来保持服务的正常运行。具体选择哪种方式取决于具体的业务需求和场景。

腾讯云相关产品推荐:

  • 云服务器(CVM):提供稳定可靠的云服务器实例,适用于各种应用场景。
  • 云函数(SCF):无需管理服务器,按需运行代码的事件驱动型计算服务。
  • 云数据库MySQL版(CDB):提供高性能、可扩展的云数据库服务,适用于各种规模的应用。
  • 云存储(COS):提供安全可靠、低成本的云存储服务,适用于各种数据存储需求。

更多腾讯云产品信息和介绍,请访问腾讯云官方网站:https://cloud.tencent.com/

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

Android下Fragment界面重叠问题

所以我将所有的Activity都强制设置为横 android:screenOrientation="landscape" ---------------------------------------...可以看到,Activity又执行了一次onCreate()方法,而Fragment执行了多次onCreateView()   总结一下:锁关闭幕后,Activity会由横切换为竖,这个时候执行了...Activity原来对应的Fragment并没有被销毁,(导致第一张生命周期图中 今日任务Fragment执行了两次onresume,因为新建了一个和原来未被销毁的一个,此时存在两个今日任务Fragment), 解打开屏幕后...那么最终就会导致打开屏幕后 之前所有未被销毁的Fragment都显示出来。   ...解决方法:   我们不让开关屏幕的时候Activity走生命周期,那么在清单文件中给Activity设置下面这两个属性即可 android:screenOrientation="landscape"

1.6K50

Android 四大组件学习之BroadcastReceiver四

说到在代码中注册广播接收者,那Android系统中规定,屏幕锁和解锁,以及电量改变必须用代码注册,在清单文件中注册是不起作用的。那是因为,屏幕锁和解锁,以及电量改变事件太频繁发生了。...那我们就用屏幕解锁和锁实现代码中注册广播接收者 这次我们用服务去创建广播接收者 Activity的代码:也就是两个按钮,一个用于创建创建服务,一个用于停止服务 public class MainActivity...intent); } //关闭服务 public void closeScreen(View v) { Log.i("MainActivity", "...关闭广播接收者服务"); stopService(intent); } } 然后Service的代码: public class ScreenService extends Service...; } } } 清单文件中,需要要配置服务,广播接收者不需要配置 <application android:allowBackup="true"

23810

2018年Android保活方案效果统计

5、LG V30+(7.1.2):锁后情况跟不加情况一致,服务一致保持运行,结论:此方案不起作用 6、小米8(8.1):关过2s之后app全部被干掉。...结论:此方案适用 3、美图m8s(7.1.1):同5.0 4、原生7.0:任务管理器中关闭APP后服务被干掉,大概过3s会重新复活(同仅START_STICKY字段模式)。...结论:此方案不起作用 6、小米8(8.1):一键清理可以杀掉服务。锁后保活超过20分钟 结论:成功对华为手机保活。...正常情况下锁服务依然存活。...4、原生7.0:任务管理器中关闭APP后服务被干掉,过2s会重新复活 5、小米8(8.1):一键清理可以杀掉服务,锁下后台保活时间超过38分钟 6、荣耀10(8.0):一键清理杀掉服务,锁下后台保活时间超过

2.2K50

使用WakeLock使Android应用程序保持后台唤醒

但是,一般情况下手机锁后,Android系统为了省电以及减少CPU消耗,在一段时间后会使系统进入休眠状态,这时,Android系统中CPU会保持在一个相对较低的功耗状态。...之前我做过一个需求是要在后台跑一个Service执行轮询,但发现一段时间以后,轮询就中断了(我测试是二十分钟后请求停止),但重新解锁屏幕后,轮询请求又开始了,后来在Stackoverflow上找到的WakeLock...接下来看如何使用WakeLock: WakeLock wakeLock = null; //获取电源锁,保持该服务在屏幕熄灭时仍然获取CPU时,保持运行 private void...各种锁的类型对CPU 、屏幕、键盘的影响: 属性 说明 PARTIAL_WAKE_LOCK 保持CPU 运转,屏幕和键盘灯有可能是关闭的。...SCREEN_DIM_WAKE_LOCK 保持CPU 运转,允许保持屏幕显示但有可能是灰的,允许关闭键盘灯 SCREEN_BRIGHT_WAKE_LOCK 保持CPU 运转,允许保持屏幕高亮显示,允许关闭键盘灯

2K40

全面盘点当前Android后台保活方案的真实运行效果(截止2019年前)1、引言2、先总结一下,Android端APP为何要搞保活黑科技?3、相关文章4、常见的Android端保活黑科技方案盘点5、汇

结论:方案失效; 3)美图m8s(7.1.1):同原生5.0; 4)原生7.0:同美图m8s; 5)LG V30+(7.1.2):锁后情况跟不加情况一致,服务一致保持运行,结论:此方案不起作用;...); 2)华为畅享5x(6.0):一键清理后服务依然存活,需要单独清理才可杀掉服务,锁8分钟后依然存活。...结论:此方案不起作用; 6)小米8(8.1):一键清理可以杀掉服务。锁后保活超过20分钟。 ▲ 结论:成功对华为手机保活。小米8下也成功突破20分钟。...正常情况下锁服务依然存活; 4)原生7.0:任务管理器中关闭APP后服务被干掉,过2s会重新复活; 5)小米8(8.1):一键清理可以杀掉服务,锁下后台保活时间超过38分钟; 6)荣耀10(...8.0):一键清理杀掉服务,锁下后台保活时间超过23分钟。

1.7K20

全面盘点当前Android后台保活方案的真实运行效果(截止2019年前)

结论:方案失效; 3)美图m8s(7.1.1):同原生5.0; 4)原生7.0:同美图m8s; 5)LG V30+(7.1.2):锁后情况跟不加情况一致,服务一致保持运行,结论:此方案不起作用; 6)...); 2)华为畅享5x(6.0):一键清理后服务依然存活,需要单独清理才可杀掉服务,锁8分钟后依然存活。...结论:此方案不起作用; 6)小米8(8.1):一键清理可以杀掉服务。锁后保活超过20分钟。 ▲ 结论:成功对华为手机保活。小米8下也成功突破20分钟。...正常情况下锁服务依然存活; 4)原生7.0:任务管理器中关闭APP后服务被干掉,过2s会重新复活; 5)小米8(8.1):一键清理可以杀掉服务,锁下后台保活时间超过38分钟; 6)荣耀10(8.0...):一键清理杀掉服务,锁下后台保活时间超过23分钟。

4.1K20

Android M doze特性预研

在禁用充电模式关闭幕后,手机会进入INACTIVE状态,此时通过step命令来手工控制状态切换。 ? 也可以通过whitelist命令增加或删除白名单应用。 ?...系统在com/android/server路径下新增了一个继承自SystemService的DeviceIdleController服务类负责doze的控制逻辑。...也就是APP的网络连接被BLOCKED掉,翻看其对应的系统服务ConnectivityService源码找到如下方法: ? [注]Release 2把上面的系统debug log关闭。...根据doze的条件,在没有充电的情况下,只能通过亮或震动等外部事件触发系统退出IDLE状态。...1.亮 APP拥有“android.permission.WAKE_LOCK”权限,执行下面代码即可点亮屏幕,实测可以让手机马上退出doze模式。 ?

1.9K91

为保证交易体验,招行选择快速适配做最新一“派”

Android 系统仍在不断进化。 随着人们对数码产品更大显示占比需求的高涨,手机全面时代已经不可阻挡地到来,面对各式各样的异形,应用开发者们似乎多了不少 “额外任务”。...在种类繁多的异形全面时代,开发者们是如何快速适配的呢? 招商银行 Android 版应用的开发团队做出了一个不错的示范。...招行向来比较重视用户体验,所以察觉到刘海手机开始兴起后,便着手将招行 app 的 Android 版进行 Android 9 适配,以保证使用刘海手机的用户能获得最佳的应用体验。 ?...Android 刘海手机进行优化调整,所以也能未雨绸缪地在新版系统正式发布前,提前储备知识。...招行的 Android 技术团队讨论工作 为了适配 Android 9,招行的 Android 开发团队使用了第三方测试服务进行兼容性测试,还特意使用了原生 Android 系统的 Pixel 手机进行真机测试

89320

Android全面适配指南

何为全面 全面是手机业界对于超高占比手机设计的一个宽泛的定义。从字面上解释就是,手机的正面全部都是屏幕,四个边框位置都是采用无边框设计,追求接近100%的占比。...下面,从以下两个方面来探究APP完美适配全面手机的方法: 更大的屏幕高宽比例 虚拟导航键(NavigationBar) 屏幕高宽比例 由于全面手机的高宽比比之前大,如果不适配的话,Android默认为最大的宽高比是...public boolean hasNavigationBar() { return mPolicy.hasNavigationBar(); } 但是,WindowManagerService是系统服务...当然,也可以在【设置】面板中来手动打开或关闭虚拟导航键,并且部分手机还支持使用手势来开启和关闭导航键。 那么,对于开发者来说,怎么知道是否开启了虚拟导航键呢,又如何进行适配呢?...但是这么做也是有缺陷的,Google共给出了5个注意事项: 使用这种设置flag的方式虽然暂时隐藏了NavigationBar,但是用户触摸屏幕的任何地方flags将会被清除,也就是说你的设置,在用户触摸屏幕后会失效

1.8K30

重力锁:智能,高效锁体验

高效的锁控件。...其主要功能有: 根据重力传感器检测手机放置状态(屏幕向上/向下放置),并根据手机防放置状态决定是否关闭屏幕。...屏幕关闭后在距离传感器(一般位于屏幕头部)前挥手点亮屏幕。 屏幕关闭后移动/拿起手机自动点亮屏幕。 屏幕开启时小幅度移动手机可保持屏幕唤醒。 使用电源键关闭幕后自动停止重力锁所有服务。...支持白名单/横向模式/SmartLock,当白名单中的应用在前台运行时,重力锁所有服务将停止,此外,若一个应用以横方式显示在屏幕上,重力锁的所有服务也会停止。 ? ? ?   ...另外,某些手机在熄一段时间后设备会进入深度睡眠状态(传感器也会被关闭),在这种状态下重力锁可能不能正常开启屏幕。

1.4K40

Tasker使用日记:调教重力锁

解决方案: 调教一:   重力锁在应用内提供了"电源键支持"的选项,即重力锁服务处于开启状态且屏幕开启时,当你按下电源键,屏幕会被熄灭并且重力锁会终止服务,也就是说,当你按下电源键,屏幕熄灭后,你将无法在距离传感器前挥手或摇晃手机来唤醒屏幕了...这个时候问题就来了:重力锁会把上述关闭屏幕的方式一并认为你是"用电源键关闭屏幕"的,所以当你使用上面的方式关闭幕后,便无法通过重力锁的体感方式唤醒屏幕。   ...,按下电源键屏蔽重力锁服务,但是通过绿色守护等方式关闭屏幕时仍可通过体感方式唤醒屏幕,唤醒屏幕重力锁仍然会开启自身服务。...调教二:   由于深夜时我们一般不操作手机,所以我们可以自定义时间,让重力锁在深夜中止服务,而在白天运行服务:   新建两个Tasker任务:   任务名称:1.开启重力锁   插件 - 重力锁...配置完毕之后重力锁将在7:30到23:59自动开启服务,在0:00到7:29自动关闭服务

1.9K40

Android开发实现消除屏幕锁的方法

里面有一个handleshow方法: 真正的去锁实现有一个 handlehide方法,真正的去隐藏锁实现 handleshow方法: private void handleShow() { synchronized...= true; // 锁状态 , 即显示锁 adjustUserActivityLocked(); // 取消对用户Activity的控制 adjustStatusBarLocked...但是做完以上后仍存在一个Bug(问题),就是唤醒屏幕后,会在指定的时间内屏幕由亮变暗,我们还需要做如下修改:按下POWER键时,解除屏幕由亮变暗的Bug。...更多关于Android相关内容感兴趣的读者可查看本站专题:《Android开发入门与进阶教程》、《Android调试技巧与常见问题解决方法汇总》、《Android基本组件用法总结》、《Android视图...View技巧总结》、《Android布局layout技巧总结》及《Android控件用法总结》 希望本文所述对大家Android程序设计有所帮助。

89351

常见自动化测试面试题,深度剖析!

不同点是隐式等待是全局性设置,并且可以随时更改,在更改后对之后的 findxxx 方法生效,对点击、输入、滑动之类的操作不起作用;显式等待仅仅针对单一元素生效,并且不仅仅是针对查找,也可以针对元素的某些属性进行自定义判断很可能下一个问题就是你在测试过程中常用哪种等待...1.多分辨率测试,Android 端很多种,ios 较少; 2.手机操作系统,Android 较多,ios 较少且不能降级,只能单向升级;新的 ios 系统中的资源库不能完全兼容低版本中的 ios 系统中的应用...卡后能否正常运行等; 4.push 测试:Android:点击 home 键,程序后台运行时,此时接收到 push,点击后唤醒应用,此时是否可以正确跳转;ios,点击 home 键关闭程序和屏幕锁的情况...(红点的显示);android 特性测试(横竖,home 键,音量键,power 键等)等测试。...;有一个标示符区分新旧版本(如版本号),对于 Android 若有内置的应用需检查升级之后内置文件是否匹配(如内置的输入法);ios 是不允许内置检查升级的。

1.3K30

Android关于悬浮窗锁或截图后消失的问题解决方法

前言 我们前面已经讲过关于悬浮窗的两篇文章 《Android实现可移动的悬浮窗》 《Android悬浮窗不用动态申请权限方法》 其中第一篇就是里面有针对android8.0后怎么开启悬浮窗的权限问题,必须要把应用的顶层权限开启才可以使用...今天我们就说一说第二种方法在android8.1锁的时候遇到的问题。...问题及解决思路 我们的程序在android8.1下悬浮窗正常使用,但是如果我们这时候锁了,或是截取屏幕后,我们的悬浮窗就会自己消失了。...实现效果 https://v.qq.com/x/page/n1349txxsbk.html 上面的视频可以看到,我们做了个截操作后,悬浮窗一会自动消失了,不过很快就又自动显示出来了。...---- 然后我们就看看在FloatWindow的这个服务里调用这个更新方法的代码 ?

2.7K20

毕业设计So Easy:Java实现手机APP安全卫士

2.4、进程管理功能需求分析与设计 目前市面上的某些Android手机性能并不是很好,多开几个应用程序就会很卡,而正在运行的程序中有些并不是用户所需要的,通过系统服务获得系统中正在运行的应用总数和手机中剩下的内存信息以及运行中进程详细信息展示给用户...,自己用着也会麻烦,而且手机解锁屏幕后给玩游戏的话好友可以操作手机上的任意一个应用程序。...,此时如果好友再让你借手机给他玩,那么用户只需要把屏幕关闭后给他,除了用户的加锁程序,其他程序好友都可以玩。...需要注意的是,这里需要通过代码的方式注册监听锁事件的广播和解事件的广播。...为了防止用户打开android系统自带的设置界面关掉安全卫士中的某些服务出现脏数据,每次显示该界面的时候必须在onStart方法内重新获取最新数据。

28930
领券