问题标签 [android-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 投票
5 回答
8163 浏览

android - 从 IntentService 调用 AsyncTask 的问题

我已经创建了IntentService类并执行asyncTaskonPreExecute()在此代码行调用时出现异常pDialog.show();

AsyncHandlerService 类 ---

更新:

我在广播接收器中调用了在 android manifestIntentService中定义的意图过滤器。android.intent.action.PACKAGE_REPLACED编码 - -

错误日志:

0 投票
2 回答
3146 浏览

android - 当应用程序退出(或被杀死)时启动服务

我想在我的应用程序关闭时启动我的前台服务。

我尝试了 OnStop() 但这对我来说不是一个好主意,因为它可以触发多次,而我只运行一个实例。

我尝试了 OnDestroy() 但它根本没有触发,因为我在整个应用程序中只使用一个活动,而且大多数时候它被 SWIPE 杀死。

有没有办法可以检测到我的应用程序何时被杀死或关闭?

谢谢!

0 投票
1 回答
172 浏览

android - 在intentservice android中使用textview

我在 MainActivity 中创建了一个 textview,我需要将它传递到我的 IntentService 中,因为我需要在其他地方使用 MainActivity 中的 textview。是否可以在 IntentService 中使用 findViewById,或者是否有一种方法可以执行类似的操作以允许在 IntentService 中使用 TextView?

谢谢

0 投票
1 回答
1765 浏览

android - 活动识别 PendingIntent 停止在半夜被调用

我的应用程序定期收集活动识别的检测到的活动数据。我完全按照文档中的描述实现了它,但间隔一分钟。

只要用户登录 - 注册的应用程序PendingIntent从谷歌播放进程接收更新..

请不要跟我讲每分钟更新请求导致的电池使用、网络和性能问题,除非它与我的问题有关:

问题: 在某些设备中(在 Nexus 5 中发生最多),在半夜持续 5-6 小时 - IntentService停止被调用。

我不确定,但怀疑它与 Google 优化有关,并且重要的运动传感器没有检测到任何进入活动识别机制的运动处于空闲模式,如可能发生的文档中所述。

对我的应用程序来说,了解每分钟大约的当前活动是什么很重要,即使它保持不变或闲置了很长时间..

我的问题:

  • 我怎么知道是否由于重要的运动传感器或任何其他原因而停止调用周期性活动识别?
  • 有没有办法以某种方式强制 Google Play 进程执行活动更新而不停止它假定不需要的时间?
0 投票
2 回答
1442 浏览

android - Android 中图库中的图像选择器

我是android的新手。今天我尝试了以下示例,但我无法继续进行。因为我在使用 nexus 5 时遇到以下错误。

错误 :

我在这个程序中遇到的任何问题。请建议

示例程序

日志错误:

0 投票
0 回答
1530 浏览

android - 如何从 IntentService 启动 Activity 并传递类来自另一个班级?

我想通过 IntentService 启动一个活动,但要注意的是活动名称或类名将作为参数传递给 IntentService。

以下是我的代码块...

现在ActivityLauncher Service的代码如下......

请告诉我如何改进我的代码。我怎样才能得到解决方案。

0 投票
1 回答
4192 浏览

android - 使用 Timers 重复 IntentService - 是否可取?

我有一个IntentService从服务器下载数据的设备,我希望IntentService每隔一段时间检查服务器更新。但是,以下帖子建议不要重复Service使用 a Timer- 而是强调使用 a AlarmManager

为什么我的服务在 Android 中不起作用?(我只想每 5 秒记录一次)

Android - 服务:只重复一次

Android 服务停止

在 Android 的参考手册中,IntentService 被描述为:

IntentService 是按需处理异步请求(表示为 Intent)的服务的基类。客户端通过 startService(Intent) 调用发送请求;该服务根据需要启动,使用工作线程依次处理每个 Intent,并在工作结束时自行停止。

这种“工作队列处理器”模式通常用于从应用程序的主线程卸载任务。IntentService 类的存在是为了简化这种模式并处理机制。要使用它,请扩展 IntentService 并实现 onHandleIntent(Intent)。IntentService 将接收 Intent,启动工作线程,并酌情停止服务。

所有请求都在单个工作线程上处理——它们可能需要尽可能长的时间(并且不会阻塞应用程序的主循环),但一次只会处理一个请求。

我不太明白的部分是为什么 a IntentService(帖子有针对 aService而不是 a 的问题IntentService)不允许使用 Timer 重复执行,因为它创建了自己的工作线程来执行。是否允许在 aTimer中使用 a IntentService?或者是AlarmManagers定期执行的唯一解决方案IntentService

对此的解释将不胜感激。

0 投票
2 回答
418 浏览

android - android mapview app 遇到内存问题(Grow Heap):帮助选择设计AsyncTask or IntentService or Service?

我有一个地图视图,它需要显示来自网络的大量覆盖。现在我当前的设计是使用AsyncTask在哪里打开套接字连接,doInBackground()并在publishProgress()其中显示地图视图上的覆盖。

现在这个设计的问题是:

  1. 首先有ItemizedOverlays<Overlayitem>大约 100 个左右的叠加层 ( ),它在处理数据期间分配了一些内存。接下来覆盖地图图块也必须加载,在内存问题中运行,Grow Heap (frag case)因为它必须加载位图(尽管我正在使用AsyncTask并行执行器加载和显示)。
  2. 平移和缩放需要很长时间,因为显示了叠加层并且必须同时加载地图图块。有时会ANR弹出对话框。
  3. 现在我的套接字连接大部分时间都必须打开(比如大约 30 分钟),因为我不确定什么时候收到新数据,这意味着AsyncTask大部分时间都必须在后台运行。

现在我的计划是将这个 AsyncTask 类移动到 IntentService 类,这个套接字连接大部分时间都可以打开,但是我如何让它与FragmentActivityIntentService在转向之前,转向或Service完全离开AsyncTask我已经在使用的课程是否有意义?

注意:我想移动的唯一原因是我IntentService遇到Service了内存问题,其中大部分是通过将内存分配给位图(maptiles)。我也尝试清理 maptile 缓存,但运气不佳。我尝试在某种程度上调用System.gc()一个Timer线程,它似乎工作,但长期不确定它会如何执行。

编辑: 底线GC是导致我的应用程序变慢。另外请看一下这个链接,我实际上是如何加载我的地​​图的:优化 android 代码片段 - 更好的设计方法? 提醒一下,当没有叠加层时,地图贴图的加载速度非常快而且很好。只有当数据通过网络接收并试图覆盖它时,才会GC触发多次。

0 投票
1 回答
7280 浏览

android - IntentService 的 START_STICKY

我已经看到许多 android 服务示例,其中 return START_STICKY 用于在启动时启动应用程序,但无论如何我可以将其用于 IntentService。我了解 Service 方法在主 UI 线程上运行,而 IntentService 作为单独的线程运行。

  1. 但是它们究竟是如何被调用的,为什么不能在启动时启动 IntentService。由于 IntentService 在单独的线程上运行,因此如果我没有磨损,我们可以对其进行更多控制。

  2. 我尝试在 IntentService 中使用 onStartCommand,但我的应用程序在启动时崩溃,即使它在手动启动时运行良好。我们可以覆盖 IntentService 中的 onStartCommand 吗?

有人可以帮我弄这个吗 ?

0 投票
1 回答
267 浏览

android - android服务重新创建和重叠

当我启动应用程序时,计数器中的值每 1000 毫秒发布一次。即使应用程序关闭或屏幕锁定,该服务也会继续运行,但是当我再次启动应用程序时,服务会重新创建,我看到计数器从 0 开始,它在旧计数器值和新计数器值之间随机播放。

所以我看到 2 个值 - 新计数器和旧计数器值同时更新并重叠。如何消除新计数器(或停止重新创建服务)

这是我在后台运行的服务

这是我的活动代码