gpt4 book ai didi

android - 从 Activity 中停止 IntentService

转载 作者:塔克拉玛干 更新时间:2023-11-02 19:23:49 24 4
gpt4 key购买 nike

我有一个 IntentSerivce 有时会在后台运行,在某些情况下它可能会运行很长时间。我为用户提供了一个退出应用程序的选项,它基本上只是停止并轮询并忽略任何 GCM 推送通知。但是,如果收到推送通知并且 IntentService 需要一段时间才能完成它必须做的事情(从服务器获取信息并在需要时向用户发送通知,例如新消息到达或东西)。

这就是问题所在,如果用户在 intentservice 仍在运行时选择“退出”应用程序,他们仍然会收到我不想要的通知。我知道该服务有 stopSelf() 方法,但当我知道用户通过菜单按钮“退出”应用程序时,我需要在 Activity 中停止它。将另一个 intent 发送到服务不起作用,因为 intents 排队并在我的 Activity 中调用 context.stopService(intent); 也不起作用,所以我还能怎么办停下来?

最佳答案

您是将新的 Intent 传递到 stopService(Intent) 还是在 startService(Intent) 中使用的原始对象。通过原始 Intent 应该停止服务。

如果失败,您可以使用 Handler 向服务传递 Message。让 IntentService 实现 Handler.Callback 接口(interface)并在您的 Activity 中创建一个新的 Handler(Handler.Callback) ,将您的 IntentService 作为回调传递。然后在您的 IntentService 中实现 onHandleMessage() 以调用 stopSelf() 并让您的 Activity 在您希望它停止时向它传递消息.

关于android - 从 Activity 中停止 IntentService,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12112998/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com