【问题标题】:Android: will system stop unbound service if it's running in foreground?Android:如果它在前台运行,系统会停止未绑定的服务吗?
【发布时间】:2011-12-16 10:54:52
【问题描述】:

应用程序使用绑定服务。因此,该服务不会在任何地方使用 startService 启动。每个需要访问服务的活动都使用 bindService 绑定到它。

在某些情况下,服务会进入前台(使用 startForeground)。

特别是可能存在没有绑定到服务的情况(根据文档,这意味着服务将被停止)但它在前台运行(这意味着它不会被停止)。哪些规则具有优先权?系统在前台运行时会停止未绑定的服务吗?

谢谢。

【问题讨论】:

    标签: android android-service


    【解决方案1】:

    在某些情况下,服务会进入前台(使用 startForeground)。

    这不是特别有用,因为进程已经在前台,因为使用服务的活动在前台。

    其中哪些规则具有优先级?

    服务将在最后一个客户端解除绑定后被销毁。 startForeground() 对此没有影响。

    【讨论】:

    • 我不认为我理解你。服务确实通过活动触发的某些操作进入前台,该活动本身就在前台。但是,服务旨在在活动进入后台时继续运行 - 直到它被用户明确停止。所以,我需要确保服务不会被系统杀死。根据文档 startForeground 为我做这项工作。
    • @Alex:引用文档:“启动的服务可以使用 startForeground(int, Notification) API”。您不是在启动一项服务——您是在绑定一项服务。引用文档:“因此在内存不足时不适合杀死”。您的服务不会因为内存不足而消失 - 它正在被销毁,因为所有绑定的客户端都未绑定,并且您未能调用 startService()
    猜你喜欢
    • 2023-03-12
    • 2018-11-11
    • 1970-01-01
    • 2017-01-25
    • 1970-01-01
    • 2020-08-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多