问题标签 [intentservice]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
0 回答
96 浏览

android - 钛中的 android onHandleIntent() 等价物是什么

钛中是否有任何等效的 API 用于 android onHandleIntent()

0 投票
1 回答
1053 浏览

android - 如何使用按钮杀死从 IntentService 创建的 TimerTask

我正在制作一个使用标准 HTTP get 获取命令的云服务。我使用服务(扩展类 IntentService 而不是服务)来保持同步。我在每 3 秒触发一次的 TimerTask 中进行检查。问题是,当用户返回活动以将其关闭时,如果他们愿意,他们会按下切换按钮。如何告诉 TimerTask(或运行定时器任务的 IntentService)停止和启动它?

服务本身在处理意图并创建任务后会被销毁,那么服务是否比 IntentService 更适合呢?即使是这样,关于停止和启动 TimerTask 的问题仍然存在。

这是意图服务的代码:

非常感谢您帮助我!

0 投票
2 回答
468 浏览

android - Android 中 Service、Web 和 Activity 之间来回通信

我阅读了大多数关于 SO 的问题和答案,我必须说,就我而言,我仍然不知道该走哪条路。有几种方法可以使用,但我无法确定哪一种最适合我的情况。

我有什么

我有一个从我的应用程序开始的服务。它检查用户的当前位置并使用读取的位置调用 Web 服务。这每 x 米发生一次。

我想得到什么

  • 使用地图进行活动并显示来自服务的当前位置读数。这意味着我的 Activity 需要在读取的每个位置上得到通知。请记住,这仅在用户启动活动时使用,因此我认为从服务广播每个位置不是一个好主意。
  • 我可以向服务询问其上次读取位置的活动。
  • 正如我之前提到的,该服务读取位置并需要每隔几秒钟将其发送到 Web 服务器。最好的方法是什么?在服务中为每个 Web 服务调用创建一个新的 Thread() ?使用异步任务?有时我可能会收到一些额外的值作为响应,在这种情况下我需要从 web 服务启动一个活动。

说了这么多,你会推荐我用什么?这会是一个好方法吗:示例:使用消息传递在 Activity 和 Service 之间进行通信

LE:我已经从 IntentService 切换到简单的 Service + 线程来向 Web 服务发送数据。我的 IntentService 实现启动并迅速销毁。大概是我做错了什么......

0 投票
1 回答
3933 浏览

android - File Observer 无法通过意图服务工作

我找到了一个很棒的类来扩展抽象的 File Observer 类......

我在 IntentService 的 onCreate 中创建了三个观察者,如下所示:

不仅观察者不工作,而且 mkdir 功能也不工作。

有任何想法吗?谢谢!

0 投票
1 回答
3971 浏览

android - IntentService 的 onStartCommand(..) 方法线程安全吗?

我有一个IntentService类,可以从复杂应用程序中的各个位置启动 - 活动、后台线程、其他服务。我想记录服务被调用的次数。我在我的 IntentService 类中使用一个私有 int 变量来跟踪它,我从我的onStartCommand(...)方法中递增它。

我突然想到,可以从各种异步线程调用 onStartCommand(...) 方法,这可能不是线程安全的解决方案。所以问题是,我是否需要将对该计数器变量的访问包装在同步块中,或者 onStartCommand(...) 的 IntentService 实现是否为我处理了这个?

作为说明,我知道我可以安全地从onHandleIntent(...)增加变量,但我需要计算实际请求而不是执行的意图。

0 投票
1 回答
4898 浏览

android - 为什么我无法启动我的 IntentService?

我有两个相对简单的代码。一项主要活动和一项意向服务。

主要活动

意向服务

Logcat 说

我能做些什么来纠正这个问题?

0 投票
1 回答
4895 浏览

android - 我的 onHandleIntent() 没有被调用?

我有两个文件。

IntentServiceTest1Activity.java

SimpleIntentService.java

通过 Log.d(),我可以看到即使服务已启动,也从未调用过 onHandleIntent。我的 Log.d 跟踪在 startService(msgIntent); 之后进行。并停在那里。没有显示来自 onHandleIntent 的 Log.d。怎么了?我该怎么做才能让它发挥作用?

谢谢!

0 投票
9 回答
40860 浏览

android - 如何通过 Activity 的取消按钮强制 IntentService 立即停止?

我有一个从 Activity 启动的 IntentService,我希望能够使用 Activity 中的“取消”按钮立即从该 Activity 停止该服务。一旦按下“取消”按钮,我希望服务停止执行代码行。

我发现了许多与此类似的问题(即此处此处此处此处),但没有好的答案。 Activity.stopService()并立即Service.stopSelf()执行该Service.onDestroy()方法,然后在销毁服务之前让代码onHandleIntent()一直完成。

由于显然没有保证立即终止服务线程的方法,我能找到的唯一推荐的解决方案(在这里)是在服务中有一个可以在onDestroy()方法中切换的布尔成员变量,然后几乎每一行代码onHandleIntent()包含在自己的“if”子句中,查看该变量。这是一种糟糕的代码编写方式。

有人知道在 IntentService 中执行此操作的更好方法吗?

0 投票
1 回答
4794 浏览

android - Android中IntentService的多个实例

我使用上面的代码每 30 秒运行一次我的 IntentService。有时,一个服务进程需要超过 30 秒的时间,因此必须在前一个进程完成之前启动另一个进程。我想知道在这种情况下前一个会发生什么。它被搁置了吗?第二个要等前一个完成吗?

我的第二个问题是:我不希望他们互相等待。我希望两个服务同时运行。因此,无论前一个服务在做什么,下一个服务都应该启动。上面的代码是实现这一目标的正确方法吗?

0 投票
1 回答
991 浏览

android - 通过 adb 启动 intentservice 失败

当我尝试通过 adb 启动 IntentService 时,出现以下错误

当我启动正常的服务 ovre adb 时,一切正常。

无法通过 adb 启动意图服务的原因是什么?

}

问候西蒙