【问题标题】: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 将始终与应用程序一起初始化,无论它是如何启动的。

标签: android android-threading


【解决方案1】:

在 android 中,事情变得非常复杂。 Android 是一个支离破碎的生态系统,一些 OEM 会执行一些设备更改,从而导致跨设备的不同行为,例如,当您关闭应用程序而不是执行宽限关闭时,它会立即杀死以提供即时效果。即使是后台工作人员也不是很有保障,请阅读更多here

后台工作人员是你最好的选择。

【讨论】:

    猜你喜欢
    • 2019-07-22
    • 1970-01-01
    • 2018-11-07
    • 1970-01-01
    • 2011-01-15
    • 2012-06-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多