当前位置: 首页 > 知识库问答 >
问题:

Android Java停止服务从上一个activity开始

敖子安
2023-03-14

我对安卓服务的这种状况感到非常惊讶。当启动应用程序时,在“onCreate”方法中调用startService来启动MyService。并且当应用程序被破坏时,调用stopService来停止MyService。问题是:当最小化应用程序,并通过小部件再次启动应用程序时,应用程序启动activity,并启动MyService的新实例。每次应用程序启动时停止最后一次myService-仅有1个mySerive实例运行的预期解决方案?

共有1个答案

南宫松
2023-03-14

再次启动服务之前,请尝试检查服务是否正在运行。

if(startService(someIntent) != null) {
    Toast.makeText(getBaseContext(), "Service is already running", Toast.LENGTH_SHORT).show();
}
else {
    Toast.makeText(getBaseContext(), "There is no service running, starting service..", Toast.LENGTH_SHORT).show();
}

要了解更多信息,请看这里。

 类似资料:
  • 问题内容: 我已经到了秃顶几步之遥… 我正在尝试运行一项服务,该服务将检查我工作中的服务器是否正在运行。应该每5分钟执行一次。 我经历过TimerTask,ScheduledExecutorService,最后是Handler。他们都工作了好几个小时,除了一些不准确的地方外,还有1-5分钟的时间,然后突然,“计时器”就停止了发射。 现在,我已经了解到,如果Scheduler遇到未捕获的异常,它将停

  • 我的应用程序设置为(非故意)服务将使用gps/网络侦听器轮询位置。它工作得很好,因为我负责服务何时结束(即在找到新位置或达到超时时调用stopSelf())。然而,我最近读到,intentService可能更适合长时间运行的任务,因为它不是在ui线程上运行的,而是在自己的工作线程上运行的。问题是,现在它不允许服务在任何时间运行(我假设这是因为服务中没有任何活动发生,而侦听器等待接收位置,因此服务本

  • 我的情况是: 我正在运行一个node.js服务器 我用于启动服务器的命令是: 然而,在某些情况下,我们的代码进入了一个要求很高的函数,导致脚本工作非常缓慢或无响应。我们正在努力优化它。 在这种情况下,我会停止服务器,并在需要时启动一个新的服务器,比如说 但是如果我想重新启动最近停止的节点。js服务器(或者重新启动它而不是停止它)这样,我希望进程停止并再次以新的速度运行。 如果我再次启动它,或者重新

  • 问题内容: 在这里,我尝试了简单的服务程序。启动服务可以正常工作并生成Toast,但停止服务则不能。此简单服务的代码如下: 调用此服务的活动的代码如下: 使用该停止按钮帮助我停止服务,该按钮在onDestroy()方法中生成吐司。我已经在这里看到了很多有关停止服务问题的帖子,但并不令人满意,因此发布了新问题。希望得到满意的答复。 问题答案: 是错误的名字 您是否仅在此问题或代码中犯了错误?

  • 我创建了一个服务,并希望一直运行此服务,直到我的电话重新启动或强制关闭。服务应该在后台运行。 创建的服务和启动服务的示例代码:

  • 问题内容: 我显然正在运行一个实例,因为当我尝试通过输入来启动新服务器时,遇到了以下问题: 我不知道如何停止此服务器并启动新服务器。 在CLI中键入命令时,可以追加任何命令吗? 我的操作系统是Ubuntu 10.04。 问题答案: 连接到节点实例并使用shutdown命令,或者如果您在ubuntu上,则可以尝试通过init.d重新启动Redis服务器: 或停止/启动它: 在Mac上

  • 问题内容: 我正在尝试从一个发送客户类的对象,Activity然后在另一个对象中显示它Activity。 客户类的代码: 我想将其对象从一个对象发送Activity到另一个对象,然后在另一个对象上显示数据Activity。 我该如何实现? 问题答案: 一种选择是让你的自定义类实现该接口,然后可以使用该方法的变体在意图中额外传递对象实例。 伪代码:

  • 我已经从以下网站下载了“jenkins-1.501.zip”http://jenkins-ci.org/content/thank-you-downloading-windows-installer . 我已经解压缩了zip文件并成功地在Windows7上安装了Jenkins。詹金斯在好的。我想从控制台停止Jenkins服务。我该怎么做?通过控制台/命令行启动和重新启动的方式是什么?