Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/xpath/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android独立服务如何实现?_Android_Service_Apk - Fatal编程技术网

Android独立服务如何实现?

Android独立服务如何实现?,android,service,apk,Android,Service,Apk,我想知道是否有一种方法可以创建一个独立于活动的服务,它将作为自己的进程运行。我希望服务在前台运行,这样它就不会被杀死,也可以被其他希望使用它的.apk访问。我该怎么做?我读了很多书,这让我比最初更困惑了。任何帮助都将不胜感激 澄清。我想运行一个可以与许多.apk进行通信的服务。这是一个没有市场价值的内部应用程序。我试图做的是使服务。apk可以向所有人注册这些内容提供商。apk使用此服务的人有一个所有其他。apk的内容提供商的列表,可以随意使用 我该怎么做 你不需要,只要你不需要它是“它自己的过程

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

澄清。我想运行一个可以与许多.apk进行通信的服务。这是一个没有市场价值的内部应用程序。我试图做的是使服务。apk可以向所有人注册这些内容提供商。apk使用此服务的人有一个所有其他。apk的内容提供商的列表,可以随意使用

我该怎么做

你不需要,只要你不需要它是“它自己的过程”。只需通过
startService()
启动服务,并调用
startForeground()
。它可以是与活动相同的流程的一部分,如果需要,用户将能够导航离开该活动,并且服务将保持运行

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


请注意,仍然欢迎用户放弃您的服务
startForeground()
将降低Android独立摆脱该服务的几率。

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

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

更新

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

当一个新的活动想要获得所有可用内容提供者的列表时,它可以查询服务并询问提供者列表。然后,服务将以包含提供者和URI列表的意图进行响应


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

我应该更具体一些。我已经照你说的做了。再搜索一点之后,我想我要找的是一个独立于.apk运行的远程服务。我希望即使应用程序(被用户或android)终止,服务也能继续运行。那么,使用远程服务能做到这一点吗?@jnford:“再搜索一点,我想我要找的是一个独立于.apk运行的远程服务。”——这是极不可能的,对用户来说肯定是不好的。请重新考虑。“我希望即使应用程序被(用户或android)杀死,服务也能继续运行。”——幸运的是,这是不可能的。“那么,使用远程服务可以实现这一点吗?”--不。