我有一项我知道已经在运行的服务,我的活动如何在不重新启动服务的情况下与之通信。
详细说明,我有一个启动服务的小部件,点击活动加载后,在这种情况下服务应该仍在运行。
我如何按照以下方式做点什么:
基本上,我不想做的主要是在我的活动中运行startService(new Intent(...))
。我不想在我的服务中再次运行onStart
。
理想情况下,我可以在我的服务类中添加一些方法,并在我的活动中调用这些方法,就像我在项目中调用任何其他公共方法一样。
我想在我的服务中启动一些新线程,如果我不需要,我不想再制作第二个服务类。
感谢您的见解
答案 0 :(得分:2)
startService()
上的文档可能有所帮助:
请求启动给定的应用程序服务。 Intent可以包含要启动的特定服务实现的完整类名,也可以包含通过操作的抽象定义以及要启动的服务类型的其他字段。如果此服务尚未运行,它将被实例化并启动(如果需要,为其创建一个进程);如果它正在运行,那么它仍然在运行。
...
<强>返回强>
如果服务正在启动或已在运行,则返回已启动的实际服务的ComponentName;否则,如果服务不存在,则返回null。
因此,如果您的服务已在运行,startService()
将无法启动新版本。