从 Activity 中停止 IntentService

2024-01-24

我有一个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(使用前将#替换为@)

从 Activity 中停止 IntentService 的相关文章

  • Android 覆盖在软件按钮之上

    我正在尝试编写一个绘制自定义鼠标指针的应用程序 我目前有一个服务 它创建一个扩展 ViewGroup 的类 并使用 WindowManager 系统服务将其显示为带有 FLAG LAYOUT IN SCREEN 设置的 TYPE SYSTE
  • Visual Studio 不允许我在 Android 物理设备上进行调试

    我正在使用 Xamarin 和 Visual Studio 2013 开发 Android 应用程序 我已将 Android 小程序连接到计算机 Sansung Kies 识别了该设备 Adb 也能识别它 因为当我输入 adb device
  • 如何检测和管理来电(Android)?

    我想创建一个应用程序 可以检测来电并在一定数量的蜂鸣声 响铃 后启动我的自定义活动 我的意思是在 2 或 3 或 5 声蜂鸣声 响铃 后我的activity被触发 我该怎么做 Thanks 我认为您无法计算自来电开始以来电话响了多少次 无法
  • 应用程序实例是否始终在任何活动之前创建?

    在 Android 中 您可以通过扩展 Application 类并在 Manifest 中声明名称来提供您自己的 Application 类实现 我的问题是 这个实现是否总是在初始活动之前创建 或者活动可以在应用程序实例有时间创建之前启动
  • AppCompat v21 工具栏更改徽标大小

    我正在从以前的操作栏迁移到 appcompat v21 中的新工具栏功能 我仍然想将徽标保留在操作栏 工具栏 的左上角 为此 我在布局中添加了支持工具栏 并为其创建了一个新的工具栏 app theme style NewToolBarSty
  • Android Studio:lambda 不起作用[重复]

    这个问题在这里已经有答案了 当尝试使用 lambda 表达式时 我遇到了一些 Gradle 构建错误 错误 41 100 错误 source 1 7 不支持 lambda 表达式 使用 source 8 或更高版本来启用 lambda 表达
  • SQLite (Android):使用 ORDER BY 更新查询

    Android SQLite 我想要在 myTable 中的其他行之间插入行在android中使用SQLite 为此 我尝试增加从第 3 行开始的所有行的 id 这样 我就可以在位置 3 处插入新行 myTable 的主键是列 id 表中没
  • 如何将画廊意图中的“打开”更改为“完成”?

    我使用以下意图打开画廊来选择多个图像和视频 Intent intent new Intent intent setType image video intent putExtra Intent EXTRA ALLOW MULTIPLE tr
  • React Native Android 发布 apk 是调试,而不是发布

    我有一个现有的 Android 应用程序 我已根据以下内容将 React Native v0 30 活动添加到项目中docs http facebook github io react native releases next docs i
  • 为什么按钮上的 maxWidth 不起作用以及如何解决它?

    我的布局上有两个按钮 在大屏幕设备 平板电脑 上我想限制它们的宽度 这样它们看起来就不会很荒谬 我希望使用 maxWidth 属性 但它显然在我的场景中没有任何作用 这是布局定义 按钮使用布局的整个宽度 忽略 maxWidth 中的任何值
  • 如何在 Android 上创建 YouTube 的双击手势?

    我在 Android 上有 exoplayer 的应用程序 我已经创建了 youtube双击手势用动画向前或向后跳跃 10 秒 如何在双击时创建具有波纹效果的半圆 像这样 这个怎么做 我也想实现这样的功能 所以我自己编写了它来 复制 You
  • 获取可以共享数据的应用程序列表

    此代码显示默认共享对话框 Intent sharingIntent new Intent Intent ACTION SEND sharingIntent setType text html sharingIntent putExtra a
  • 没有调用addToBackStack,片段仍然添加到backstack,为什么?

    我正在制作我的片段更换器助手类 但我遇到了一些问题 我称之为FragmentChanger 它有一个fragmentContainer 这是一个ViewGroup 其中包含我想展示的所有片段 我已经做了我自己的replace Fragmen
  • Android模拟器分配内存失败8

    当我尝试从 Eclipse 运行 WXGA800 模拟器时 出现如下错误 Failed to allocate memory 8 This application has requested the Runtime to terminate
  • 如何在android中的操作栏中创建Edittext?

    我们可以在操作栏中使用编辑文本吗 在阅读了 Google 中的大量资源后 我找不到如何在操作栏中创建编辑文本 谁能告诉我该怎么做 您可以设置自定义View为了ActionBar像这样 getActionBar setCustomView R
  • 内部存储的安全性如何?

    我需要的 对于 Android 我需要永久保存数据 但也能够编辑 并且显然是读取 它 用户不应访问此数据 它可以包含诸如高分之类的内容 用户不得对其进行编辑 我的问题 我会 并且已经 使用过Internal Storage 但我不确定它实际
  • 在 Android 中上传文件出现内存不足错误

    我的上传代码如下 String end r n String twoHyphens String boundary try URL url new URL ActionUrl HttpURLConnection con HttpURLCon
  • 具有矢量可绘制的 ImageView 的 Resources$NotFoundException

    我遇到了崩溃 Resources NotFoundException用于在活动创建时绘制的矢量 21 日前崩溃 安卓工作室2 1 支持库24 0 0 Gradle插件2 1 0 目标SDK 23 最小SDK 15 buildTools版本
  • 如何以编程方式创建活动转换?

    我想以编程方式创建一个动画 以从触摸屏点启动具有缩放效果的活动 接下来我模拟缩放输入效果
  • Android ADT Eclipse 插件,parseSDKContent 失败

    我刚刚设置了我的第一个 Android 开发环境 其中包括 日食3 5 Mac OS X 10 5 适用于 x86 mac 的 Android SDK ADT Eclipse 插件 0 9 6 我已将 set PATH 设置为我的 SDK

随机推荐

  • 如何用Java计算圆内各点的坐标?

    I found 这个网站 http vladgotlib com circular 你尝试画一个完美的圆 只是为了好玩 我编写了这个小型 Java 应用程序 它从屏幕中间绘制一个圆圈 here is my massive array pri
  • 为什么ELF的vaddr没有页面对齐?

    我正在尝试构建一个类似 xv6 的系统 并且我正在复制下面的 xv6 代码 if ph p vaddr PGSIZE cprintf exec addr not page aligned n goto bad 这是ELF被加载到内存的部分
  • 如何在 Firefox for Android 中检测 Android 的版本号?

    对于网站 如果用户使用 Android 4 设备 我们希望在 Play 商店中显示链接 我们测试的所有浏览器都在其用户代理字符串中发送 Android 版本号 除了 Firefox for Android Firefox 只是发送这个 Mo
  • 如何检查 mac bash 应用程序启动时是否按下了选项键

    我有一个相对简单的问题 我有一些 Mac 应用程序 其启动器是用 bash 编写的 我想向启动器添加一个小功能 让其他人在应用程序启动时按下 option alt 键时访问 config app 或位于 Contents Resources
  • SQL 更新查询中的聚合函数?

    我试图将一个表中的值设置为另一表中的值的总和 沿着这些思路 UPDATE table1 SET field1 SUM table2 field2 FROM table1 INNER JOIN table2 ON table1 field3
  • 如何通过 web3 或 json rpc 获取 solana 链上所有 Candy Machine Id

    我想通过 web3 或 json rpc 调用获取链上的所有 Candy Machine Id 我已尝试使用 getProgramAccounts json rpc 但已达到最大响应大小的响应 这是我尝试过的代码 curl http api
  • 如何从 Xamarin(Android 和 iOS)使用 OpenCV?

    我想使用 Xamarin 创建一个适用于 iOS 和 Android 的移动应用程序 并且我想调用一些 OpenCV 函数 例如 轮廓检测和透视变换 我大致了解从 C 调用 C 函数的过程 但我不知道如何从OpenCV 二进制文件 http
  • Velocity:如何定义全局变量

    我尝试添加一堆 set x abc VM global library vm 文件中的语句 但这些变量在我的 VM 模板中不可用 我想为图像的基本路径等设置一个全局变量 这可能吗 您可以将该变量添加到 VelocityContext 然后它
  • 如何在 SQL 中用随机数填充列?我在每一行中得到相同的值

    UPDATE CattleProds SET SheepTherapy ROUND RAND 10000 0 WHERE SheepTherapy IS NULL 如果我然后执行选择 我会看到我的随机数是每行都相同 http xkcd co
  • EF Core - 添加相关实体时出错

    当我尝试更新已从数据库获取的实体的相关实体时 出现错误 为了便于说明 我有这些实体 class Car int Id string Name virtual ICollection
  • static_assert if 表达式为 constexpr

    我想创建一个类模板 template
  • ViewComponents 不是异步的

    我正在尝试使用ViewComponents InvokeAsync 功能 但不知怎的 这根本不是异步的 它正在等待组件代码渲染 http docs asp net en latest mvc views view components ht
  • Visual Studio 2008 - 获取断点之间的时间间隔?

    有谁知道VS 2008中能否得到破发点之间的时间间隔 插件 VS技巧 我不想将代码添加到现有的源代码中来计算运行需要多长时间 我想要一种快速而肮脏的方法来在调试时获取它 对于你们这些聪明的人来说 我知道我也可以随时拿出秒表 但我也想要一些稍
  • 如何在 C# 中按日期时间对集合进行排序

    我有一个需要按日期时间排序的列表 MyStuff 类如下所示 public class MyStuff public int Type get set public int Key get set public DateTime Creat
  • linq用or条件连接3个表

    我需要在 LINQ 中创建一个包含 3 个表和 OR 条件的语句 我的函数接收一个整数 让我们调用它intZ 我有3张桌子 tableA tableB and tableC tableA有列int1 int2 and intB intB与t
  • Powershell 启动进程 VS 调用项

    有什么区别Start Process and Invoke Item 我注意到你不能Invoke Item chrome 我假设Invoke Item专门针对具有给定文件路径的文件 但是使用有什么好处吗Invoke Item代替Start
  • python在调试模式下可以在c++中工作,但不能在exe文件中工作

    我正在研究将 Python 代码嵌入到 C helloworld 程序中 正确设置必要的附加包含 库目录 当我使用本地 Windows 调试器时 它正确显示 Hello World 但如果我双击project exe 它会说project
  • 多次调用子组件构造函数

    我有一个父组件 它是一个包含标题的平面列表HeaderComponent This HeaderComponent是我创建的一个自定义组件 它包含自己的 2 个子组件 每当我刷新列表时 我都会将布尔值传递给HeaderComponent作为
  • 我可以在没有 S3 存储桶的情况下使用 Amazon Rekognition 吗?

    我想将 Firebase 与 Amazon Rekognition 一起使用 可以使用吗 我读过 Class for Rekognition for Node js 它在代码中有 S3 命令 不 您不需要使用s3如果你不想的话 使用 s3
  • 从 Activity 中停止 IntentService

    我有一个IntentSerivce有时在后台运行 并且在某些情况下可能是一个相当长的运行过程 我为用户提供了退出应用程序的选项 该应用程序基本上只是停止并轮询并忽略任何GCM推送通知 但是如果有推送通知进来并且IntentService需要