我有一个IntentSerivce
有时在后台运行,并且在某些情况下可能是一个相当长的运行过程。我为用户提供了退出应用程序的选项,该应用程序基本上只是停止并轮询并忽略任何GCM
推送通知。但是如果有推送通知进来并且IntentService
需要一段时间才能完成它必须做的事情(从服务器获取信息并在需要时向用户发送通知,例如新消息到达或其他)。
这就是问题所在,如果用户选择“退出”应用程序,而intentservice
仍在运行,他们仍然会收到我不想要的通知。我知道有stopSelf()
该服务的方法,但当我知道用户通过菜单按钮“退出”应用程序时,我需要在活动中停止它。发送另一个intent
由于意图排队并调用,因此该服务不起作用context.stopService(intent);
在我的活动中也不起作用,那么我还能如何阻止它呢?
你是否通过了新的Intent
into stopService(Intent)
或原来使用的startService(Intent)
。传递原始Intent应该停止服务。
如果失败,你可以使用Handler
通过服务aMessage
。有IntentService
实施Handler.Callback
界面并创建一个新的Handler(Handler.Callback)
在你的Activity
,通过你的IntentService
作为回调。然后实施onHandleMessage()
在你的 IntentService 中调用stopSelf()
并有你的Activity
当您希望它停止时向其传递消息。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)