没有主线程可以存在后台线程吗?
Posted
技术标签:
【中文标题】没有主线程可以存在后台线程吗?【英文标题】:Can a background thread exist without the main thread? 【发布时间】:2021-05-18 09:24:34 【问题描述】:如果我从后台/最近应用程序列表中删除应用程序,UI 线程也会停止,以便系统可以回收与 UI 关联的内存。现在考虑一个触发 PeriodicWorkRequest 的情况,它反过来启动一个工作程序(在应用程序从后台/最近的应用程序列表中删除之后)。 worker 隐式运行在一个单独的后台线程上,并正在执行分配的任务。但是 UI/Main 线程是否也与工作线程一起创建?
应用可以在没有活动的情况下存在。它可以有其他组件,如服务等,没有 UI。这种情况下,UI/Main线程还存在吗?
或者在任何其他情况下,一个进程是否可以存在没有 UI/主线程,只有一个工作线程?
【问题讨论】:
主线程和 looper 将始终与应用程序一起初始化,无论它是如何启动的。 【参考方案1】:在 android 中,事情变得非常复杂。 Android 是一个支离破碎的生态系统,一些 OEM 会执行一些设备更改,从而导致跨设备的不同行为,例如,当您关闭应用程序而不是执行宽限关闭时,它会立即杀死以提供即时效果。即使是后台工作人员也不是很有保障,请阅读更多here
后台工作人员是你最好的选择。
【讨论】:
以上是关于没有主线程可以存在后台线程吗?的主要内容,如果未能解决你的问题,请参考以下文章