首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >服务中的线程- Android应用程序

服务中的线程- Android应用程序
EN

Stack Overflow用户
提问于 2018-06-21 04:04:42
回答 1查看 1.5K关注 0票数 2

如果我想在后台服务(扩展服务)中创建一个单独的线程,当应用程序退出(单击主页按钮)或手机进入睡眠状态时,线程是否仍能运行?我想使用Service的行为,但是我的后台服务太重了,不能在主线程上运行,并且会导致UI中的帧跳过。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-06-21 09:04:33

当应用程序退出(单击主页按钮)或手机进入睡眠状态时,线程是否仍能运行?

线程可以在后台运行,也可以在睡眠模式下运行,但主要关注的是服务是否允许运行。

在Android之前,你可以无限期地在后台运行Service,没有任何限制。

但从Android O开始,X分钟(根据我的观察,大约1-2分钟),你的应用程序进入后台后,所有后台服务的限制都会生效,你的服务将被停止,就像你调用了Service.stopSelf()一样

如果您的目的是:,请使用

  • 来无限期地运行线程,那么你应该避免这样做,因为它会影响设备的电池寿命,并且操作系统限制不允许这样做。您可以使用WorkManager定期执行任务,这将遵循休眠模式。

  • ,确保app启动的一次作业执行到完成,即可创建ForegroundService。前台服务是带通知的Service。你可以考虑一个音乐播放器应用程序,它可以播放音乐,即使你关闭该应用程序,并通过通知控制它。

您可以遵循这个SO,它描述了在Android以及之前版本的中启动ForegroundService的方法

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/50956228

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档