【问题标题】:Android independent services how to?Android独立服务如何?
【发布时间】:2013-08-31 19:08:57
【问题描述】:

我想知道是否有一种方法可以创建一个服务,该服务将作为独立于活动的自己的进程运行。我希望服务在前台运行,这样它就不会被杀死,并且其他希望使用它的 .apk 也可以访问它。我怎样才能做到这一点?我读了这么多,这让我比最初更困惑。任何帮助将非常感激。

澄清一下。我想运行一个可以与许多.apk 通信的服务。这是一个没有市场价值的内部应用程序。我要做的是提供服务,.apk 可以在那里注册内容提供者,因此所有使用此服务的 .apk 都有一个所有其他 .apk 内容提供者的列表,可以随意使用。

【问题讨论】:

    标签: android service apk


    【解决方案1】:

    服务本质上独立于活动。你不需要一个来运行另一个。服务总是在后台运行,通常不会被杀死,除非它们占用太多资源。

    根据您希望服务和活动之间的交互类型,您需要定义适当的意图,或者可能使用 ContentProvider。

    更新

    在您上面描述的情况下,只需让每个内容提供者使用一个意图向服务注册,该意图指定访问该内容提供者所需的 URI。然后,该服务将保留所有已注册内容提供者及其 URI 的列表。

    当一个新 Activity 想要获取所有可用 ContentProvider 的列表时,它可以查询服务,意图请求提供者列表。然后,该服务将以包含提供程序和 URI 列表的意图进行响应。

    使用这些信息,各个活动可以决定他们想要与哪些内容提供者进行交互。

    【讨论】:

      【解决方案2】:

      我该怎么做?

      你不需要,因为你不需要它是“因为它是自己的过程”。只需通过startService() 启动服务并让服务调用startForeground()。它可以与 Activity 属于同一进程,如果需要,用户将能够离开该 Activity,并且该服务将继续运行。

      我希望服务在前台运行,这样它就不会被杀死

      请注意,仍然欢迎用户摆脱您的服务。 startForeground() 将降低 Android 自行摆脱该服务的可能性。

      【讨论】:

      • 我应该更具体一些。我已经做到了你所说的。经过一番搜索后,我想我正在寻找的是一个独立于.apk 运行的远程服务。即使应用程序被杀死(由用户或android),我希望服务继续运行。那么使用远程服务会实现这一点吗?
      • @jjNford:“经过一番搜索,我认为我正在寻找的是一个独立于 .apk 运行的远程服务。” ——这极不可能,而且对用户来说绝对是坏事。请重新考虑。 “即使应用程序被杀死(由用户或安卓),我也希望服务继续运行。” ——幸运的是,这是不可能的。 “那么使用远程服务可以实现这一点吗?” -- 没有。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-03-30
      • 2014-02-20
      • 2021-03-13
      • 2016-01-31
      相关资源
      最近更新 更多