【问题标题】:A intentService won't be killed by System?IntentService 不会被系统杀死?
【发布时间】:2017-07-03 10:06:09
【问题描述】:

根据documentation,默认情况下,每个android组件都运行在同一个进程中。所以当在UI线程中调用startService来启动一个intentService。 IntentService 实际上运行在同一个进程中,但是另一个线程称为工作线程,对吧?

如果内存不足,系统可能会终止任何应用程序进程。根据intentService 的documentation,它只会在工作结束后自行停止。这是否意味着运行IntentService的进程不会被系统杀死?既然是宿主UI线程的同一个进程,是不是意味着即使app在后台,只要app有intentService运行就不会被系统杀死?

谢谢

【问题讨论】:

    标签: android process


    【解决方案1】:

    intentService其实是在同一个进程中运行的,只不过是不同的线程,叫做工作线程吧?

    Java 中的对象不会在线程中“运行”。在线程上调用方法。在后台线程上调用IntentServiceonHandleIntent() 方法。

    是否意味着运行IntentService的进程不会被系统杀死?

    没有。

    因为它是承载 UI 线程的同一个进程

    每个进程都有一个线程,称为其主应用程序线程(或有时称为其 UI 线程)。线程与进程绑定;整个设备没有一个神奇的“UI 线程”。

    是不是说即使app在后台,只要app有intentService在运行就不会被系统杀掉?

    没有。

    【讨论】:

    • 那么如果我们不指定任何调用onHandleIntent的进程,执行onHandlerIntent的后台线程会在系统kill app时被杀死?
    • @shuoweng:如果“system kill app”是指“Android终止服务所在的进程”,那么是的。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-10-01
    • 2023-03-13
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多