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

停止IntentService的正确方法

云卓
2023-03-14

我正在使用IntentService将图像上传到服务器。我的问题是我不知道如何/何时停止服务。当我在onHandleIntent(意图..)中调用stopself()时将删除在IntentService队列中等待的所有意图。但我不想停止活动中的服务,因为我想完成上传过程,即使我的应用程序没有运行。

共有2个答案

闻人宝
2023-03-14

IntentService在不再有Intents(作业)要处理时会自动停止。它为每个Intent(作业)运行stopSelf(startId)。查看IntentService源代码或从这里扩展服务类的http://developer.android.com/guide/topics/fundamentals/services.html

高增
2023-03-14

我的问题是我不知道如何/何时停止服务。

IntentServiceonHandleIntent()结束时自动停止,如果在onHandleIntent()运行时没有向其发送更多命令。因此,您不必自己手动停止IntentService

当我在onHandleIntent(Intent...)中调用的时候,所有在IntentService队列中等待的Intents都会被删除。

这就是为什么你不这么做。

但我不想停止活动中的服务,因为我想完成上传过程,即使我的应用程序没有运行。

然后让IntentService本身停止。

 类似资料:
  • 我有一个稍微令人困惑的问题,我认为由于一个愚蠢的疏忽,这将是一个容易解决的问题。 我的主要任务是上传图像和录音文件到我的服务器上的一个位置。我通过FTP这样做。 活动通过startService(intentName)调用服务 onHandleIntent()创建一个新线程 在新线程中,需要上传的文件被放入一个列表数组 在列表数组中循环。在这个循环中,将文件名传递给FTP服务器。如果添加成功,我会

  • 我运行“Storm杀死拓扑-名称”杀死拓扑,但之后有干净的方法关闭工人,光轮,监督员和UI吗? 我没有在文档中找到任何与此对应的命令:https://github.com/nathanmarz/storm/wiki/command-line-client

  • 我的应用程序中正在运行IntentService。当用户按下“取消”按钮时,我想停止,但onHandleIntent会继续运行,即使在调用onDestroy(IntentService)时也是如此。 在执行过程中,我尝试了StSelfFe(),StutoIn(int)和StestService(意图),但不起作用。 我试图从碎片中停下来 提前感谢

  • 问题内容: 我使用以下代码在Python中启动并关闭 在脚本结束执行后,我仍然在Mac活动监视器中找到的实例。实际上,每次我运行脚本时,都会创建一个新进程。 我应该如何关闭驱动程序? 问题答案: 不保证该方法释放与驱动程序实例关联的所有资源。请注意,这些资源包括但不限于驱动程序可执行文件(在这种情况下为PhantomJS)。该方法旨在释放驱动程序的所有资源,包括退出可执行进程。

  • 问题内容: 我需要一个解决方案来正确停止Java中的线程。 我有实现Runnable接口的类: 我有启动和停止线程的类: 但是当我关闭时,我在类中得到了异常: 我正在使用JDK 1.6。所以问题是: 如何停止线程并且不引发任何异常? PS我不想使用;方法,因为它已过时。 问题答案: 在类中,你需要一种设置标志的方法,该标志通知线程它将需要终止,类似于你刚刚在类范围中使用的变量。 当你希望停止线程时

  • 问题内容: 有没有一种干净的方法可以阻止风暴,而又不使用“ kill XXX”杀死风暴,其中XXX是PID? 我运行“ storm kill topology- name”杀死拓扑,但是在那之后,有没有一种干净的方法来关闭worker,nimbus,supervisor和ui? 我没有从文档中找到与此命令相对应的任何命令:https : //github.com/nathanmarz/storm/