没有startService的android访问运行服务

时间:2012-12-23 22:24:31

标签: android service android-activity

我有一项我知道已经在运行的服务,我的活动如何在不重新启动服务的情况下与之通信。

详细说明,我有一个启动服务的小部件,点击活动加载后,在这种情况下服务应该仍在运行。

我如何按照以下方式做点什么:

  • 有条件地检查服务是否有效
  • 访问服务中的方法

基本上,我不想做的主要是在我的活动中运行startService(new Intent(...))。我不想在我的服务中再次运行onStart

理想情况下,我可以在我的服务类中添加一些方法,并在我的活动中调用这些方法,就像我在项目中调用任何其他公共方法一样。

我想在我的服务中启动一些新线程,如果我不需要,我不想再制作第二个服务类。

感谢您的见解

1 个答案:

答案 0 :(得分:2)

startService()上的文档可能有所帮助:

  

请求启动给定的应用程序服务。 Intent可以包含要启动的特定服务实现的完整类名,也可以包含通过操作的抽象定义以及要启动的服务类型的其他字段。如果此服务尚未运行,它将被实例化并启动(如果需要,为其创建一个进程);如果它正在运行,那么它仍然在运行。

     

...

     

<强>返回

     

如果服务正在启动或已在运行,则返回已启动的实际服务的ComponentName;否则,如果服务不存在,则返回null。

因此,如果您的服务已在运行,startService()将无法启动新版本。