Android使用服务,新手的好奇心

Android使用服务,新手的好奇心,android,service,Android,Service,我想知道一些关于服务的基本、实用的东西,这些东西在Android开发者参考页面中没有明确提到 我如何从另一个尚未启动的应用程序调用服务 如何查询其他应用程序提供的服务 是否允许服务使用UI方法?文档中说,他们的目的是不向用户提供UI,但他们的示例中有一个祝酒词 服务是否可以重新进入?如果两个应用程序调用相同的服务,它们是否会同时“服务”,而不会与任何局部变量发生冲突 服务是插件制作的方式吗 我可以使用服务扩展我已经安装的应用程序的功能吗?i、 e.我可以只“安装”一个服务吗 服务能否启动正常活动

我想知道一些关于服务的基本、实用的东西,这些东西在Android开发者参考页面中没有明确提到

我如何从另一个尚未启动的应用程序调用服务

如何查询其他应用程序提供的服务

是否允许服务使用UI方法?文档中说,他们的目的是不向用户提供UI,但他们的示例中有一个祝酒词

服务是否可以重新进入?如果两个应用程序调用相同的服务,它们是否会同时“服务”,而不会与任何局部变量发生冲突

服务是插件制作的方式吗

我可以使用服务扩展我已经安装的应用程序的功能吗?i、 e.我可以只“安装”一个服务吗

服务能否启动正常活动?他们能让客户完成吗? 我如何从另一个尚未启动的应用程序调用服务

活动等服务是通过使用Intent系统启动的。您可以使用startServiceintent启动服务;方法只要服务被正确配置为响应来自自身沙箱之外的意图,这就跨越了应用程序边界

如何查询其他应用程序提供的服务

文件。我无法想象在没有文档的情况下,你会想要查询应用程序的服务,因为你不知道要通过什么才能让服务正确执行

是否允许服务使用UI方法?文档中说,他们的目的是不向用户提供UI,但他们的示例中有一个祝酒词

服务可以访问应用程序上下文,因此可以发布祝酒词或启动自己的活动。它们还可以看到在同一沙箱中运行的应用程序,这意味着它们可以通过处理程序直接更改运行活动的UI。然而,从本质上讲,服务的设计并不是为了与UI接口,即使这是可能的

服务是否可以重新进入?如果两个应用程序调用相同的服务,它们是否会同时“服务”,而不会与任何局部变量发生冲突

服务可以使用不同的标志启动,并且可以进行不同的编程,以允许它们以异步方式为接收到的意图提供服务,或者对要串行执行的意图进行排队。你可以找到更多关于这一点和你问题的其余部分

服务是插件制作的方式吗

插件

我可以使用服务扩展我已经安装的应用程序的功能吗?i、 e.我可以只“安装”一个服务吗

您可以将服务安装为一个单独的应用程序,该应用程序可以捕获它正在进行的startService调用(如果它未使用命名的意图)。但是,此服务将位于不同的沙箱中,并且无法访问正在运行的应用程序的变量/状态

服务能否启动正常活动?他们能让客户完成吗

是的,如果服务在同一个沙箱中运行,那么他们可以看到在其旁边运行的应用程序。它可以使用startActivity,因为它可以访问应用程序上下文,并且可以调用应用程序内部的静态方法,其中可能包含对活动的静态访问

我如何从另一个尚未启动的应用程序调用服务

活动等服务是通过使用Intent系统启动的。您可以使用startServiceintent启动服务;方法只要服务被正确配置为响应来自自身沙箱之外的意图,这就跨越了应用程序边界

如何查询其他应用程序提供的服务

文件。我无法想象在没有文档的情况下,你会想要查询应用程序的服务,因为你不知道要通过什么才能让服务正确执行

是否允许服务使用UI方法?文档中说,他们的目的是不向用户提供UI,但他们的示例中有一个祝酒词

服务可以访问应用程序上下文,因此可以发布祝酒词或启动自己的活动。它们还可以看到在同一沙箱中运行的应用程序,这意味着它们可以通过处理程序直接更改运行活动的UI。然而,从本质上讲,服务的设计并不是为了与UI接口,即使这是可能的

服务是否可以重新进入?如果两个应用程序调用相同的服务,它们是否会同时“服务”,而不会与任何局部变量发生冲突

服务可以使用不同的标志启动,并且可以进行不同的编程,以允许它们以异步方式为接收到的意图提供服务,或者对要串行执行的意图进行排队。你可以找到更多关于这一点和你问题的其余部分

服务是插件制作的方式吗

插件

我能用一把吗 扩展我已安装的应用程序功能的服务?i、 e.我可以只“安装”一个服务吗

您可以将服务安装为一个单独的应用程序,该应用程序可以捕获它正在进行的startService调用(如果它未使用命名的意图)。但是,此服务将位于不同的沙箱中,并且无法访问正在运行的应用程序的变量/状态

服务能否启动正常活动?他们能让客户完成吗


是的,如果服务在同一个沙箱中运行,那么他们可以看到在其旁边运行的应用程序。它可以使用startActivity,因为它可以访问应用程序上下文,并且可以调用应用程序内部的静态方法,其中可能包含对活动的静态访问。

实际上,打开7个问题要好得多。“这会被关闭的。”阿米加布·莱克拉坎特为什么?尽管对奥德很尊重,这是他的意见。我认为这些问题之间有背景联系。我敢肯定,如果我把他们分开,我会立即得到一些人的反对票,因为读者不会理解我问他们的背景。尽管我同意,我可能会得到更少的回应。但有可能有人会发布一个链接到一个好的博客或教程来解决所有这些问题。实际上,开始7个问题要好得多。“这会被关闭的。”阿米加布·莱克拉坎特为什么?尽管对奥德很尊重,这是他的意见。我认为这些问题之间有背景联系。我敢肯定,如果我把他们分开,我会立即得到一些人的反对票,因为读者不会理解我问他们的背景。尽管我同意,我可能会得到更少的回应。但很有可能有人会发布一个链接到一个好的博客或教程来解决所有这些问题。太好了!关于问题1,只剩下一个疑问。不清楚另一个应用程序(提供服务的应用程序)是在我调用服务时自动启动的,还是必须已经启动。startServiceintent将启动已停止的服务,或者将意向传递给已启动的服务。作为客户,您通常不需要知道服务是否已经在运行。您说过,作为客户,您通常不需要知道服务是否已经在运行。这意味着我可以指望服务会被启动吗?或者如果无法启动,我会得到一些RemoteException吗?我认为这是一个微妙的问题,如果我想依靠一个服务为我做一些工作。@ilomambo请记住,如果我正确阅读Android文档,该服务通常在您的调用线程上下文中运行。如果该服务没有运行您传递消息的行为,它将启动它并处理您的请求。如果启动,它仍将处理您的请求。无论哪种方式,您的请求都会得到处理,所以在发送意图之前,您不需要知道服务是否正在运行。太好了!关于问题1,只剩下一个疑问。不清楚另一个应用程序(提供服务的应用程序)是在我调用服务时自动启动的,还是必须已经启动。startServiceintent将启动已停止的服务,或者将意向传递给已启动的服务。作为客户,您通常不需要知道服务是否已经在运行。您说过,作为客户,您通常不需要知道服务是否已经在运行。这意味着我可以指望服务会被启动吗?或者如果无法启动,我会得到一些RemoteException吗?我认为这是一个微妙的问题,如果我想依靠一个服务为我做一些工作。@ilomambo请记住,如果我正确阅读Android文档,该服务通常在您的调用线程上下文中运行。如果该服务没有运行您传递消息的行为,它将启动它并处理您的请求。如果启动,它仍将处理您的请求。无论哪种方式,您的请求都会得到处理,所以在发送意图之前,您不需要知道服务是否正在运行。