问题标签 [android-service]

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 投票
1 回答
746 浏览

android - 通过全局对象访问 Android 服务

我有一个简单的服务,我的几个活动需要访问。标准方法似乎是:

  1. 创建 ServiceConnection 指定绑定后要做什么[与服务对象]
  2. 使用 ServiceConnection 调用 bindService

但这需要每个活动至少调用一次 bindService。如果我只调用一次 bindService,将服务对象全局存储以允许不同的活动访问它会怎样?

这是不好的做法吗?为什么?

0 投票
2 回答
32265 浏览

android - 仅创建一个 Service 实例 (Android)

如何确保只创建一个 Service 实例?

我已经检查了一些带有日志记录的功能(WeatherService 是扩展服务的类):

即使我确定同一个函数运行了两次(下载),它也会给出不同的哈希码:

我将 Activity 绑定到服务:

并且该服务可以运行几分钟直到完成,因此该服务可以绑定到/由许多活动创建

0 投票
1 回答
1395 浏览

android - Android服务错误处理

服务错误处理的最佳方法是什么?例如,我有从 Internt 获取一些信息的服务,我想在连接不良时向用户显示一些带有消息的对话框。或者,如果我有一些用于解析我的服务使用的 HTML 的 Util 类,并且在这个 Util 类中发生异常。如何显示对话框?据我所知,DialogBu​​ilder 需要一些 Activity 上下文,但 Service 上下文对此是错误的。对?谢谢。

0 投票
1 回答
1516 浏览

android - 如何在 Android Activity 中处理通知

我有一个 Activity,它将每 x 秒查询一次 RESTful API(使用处理程序进行轮询)。GET 的结果用于更新 ListView。这是使用 AsyncTask 完成的。

当新数据中满足某些条件时,我想在通知栏中放置一个通知。到目前为止,我所阅读的所有内容都表明应该使用服务创建和更新通知,以便即使应用程序不在焦点上也可以发出通知。我看到了这方面的积极方面。

但是,我不确定我是否应该从我的活动中创建一个服务,或者我是否需要做一些比这更复杂的事情。我还没有决定是否应该放弃我的 AsyncTask 模型,转而使用服务来更新我的列表视图。

所以,我的问题是:

1)是否有一个很好的教程来展示如何从活动中创建本地服务?

本教程不需要展示如何使它们通信,服务可以与主要活动隔离。

2) #1 会为我提供我正在寻找的通知福利吗?(即使主应用程序不可见也会生成通知)

3) 我应该使用相同的服务来更新我的列表视图吗?

该服务基本上会进行与 AsyncTasks 相同的查询,只是对结果执行不同的操作。该应用程序似乎更有意义,具有服务查询,进行通知处理,然后将结果提供给活动,但我还没有找到一个很好的资源来清楚地展示如何做这样的事情。

如果需要,我可以添加任何必要的代码或进一步解释。

0 投票
3 回答
7333 浏览

android - 如何在 Bundle 中发送自定义对象的 ArrayList

我有一个应用程序,它使用服务每 x 秒创建一个自定义对象 (MyObject) 的 ArrayList。然后我希望我的 Activity 获得这个 ArrayList。

我目前正计划让服务在每次完成数据查询时向 Activity 的处理程序发送一条消息。我希望发送给处理程序的消息包含 MyObjects 的 ArrayList。

在 Activity 中构建方法以从消息中获取此 ArrayList 时,我注意到我做不到。

如果我试过

然后我将它传递给预期的 ArrayList 的方法不会接受它。如果我尝试投射结果:

我收到错误:Cannot cast from ArrayList<Parcelable> to ArrayList<MyObject>

MyObject 实现 Parcelable 并且我已经成功地将一个 ArrayList 从我的服务发送到我的活动,方法是让我的活动调用服务上的一个方法来检索它。不过,我正试图避免让我的活动轮询我的服务以获取这些数据。

1)如何在消息中将包内的 ArrayList 发送给处理程序?

2) 我应该使用不同的模型来让我的服务更新我的活动中可能可见或不可见的数据吗?我总是希望我的活动中的数据是来自服务的最新数据。

0 投票
1 回答
5617 浏览

android - Suppress notifications from a service if activity is running

I have an Activity and Service that work together in my application. I've configured the service as a remote service (implemented AIDL) so it will keep running even when the Activity isn't visible.

The service is responsible for polling a server for data and sending alert notifications when certain criteria are met. I do not want the Service to send these notifications when the Activity is visible.

Is there a way for the Service to know the status of any particular activity? Particularly an activity that is bound to it?

updated with manifest to troubleshoot permission problem:

The error I'm getting in Logcat:

Task that sends the broadcast:

0 投票
1 回答
1584 浏览

android - Android:在服务内的 TimerTask 中实例化处理程序

我正在尝试使用服务来定期调用我的 API。我用来进行外部 HTTP 调用的异步类将信息返回给传入的处理程序。

下面的简化版本死在 Handler 被实例化的行(没有堆栈跟踪)。知道为什么吗?我应该这样做有更好的方法吗?

0 投票
2 回答
3236 浏览

android - 为什么我的 ServiceConnection 方法从未执行?

这是调用我的服务的类:

这就是服务:

这是 AndroidManifest.xml 中的两个活动:

onServiceConnected 永远不会执行。我错过了什么?

这是激活 TicketList 活动时 LogCat 在详细模式下的输出:

0 投票
6 回答
9433 浏览

android - 从广播接收器或服务启动 Android TTS

我试图让 TTS 在后台运行。但是,我从来没有听到任何声音。我有一个启动服务的广播接收器。我把我的 TTS 代码放在这两个里面,但它从不说话。我知道正在调用该方法(我在其上放置了一个断点),但它仍然不起作用。

这是我的日志,但它似乎没有包含有关 TTS 服务的任何内容。

提前谢谢大家!

0 投票
6 回答
46596 浏览

android - 调试服务

我编写了一个带有远程接口的服务并将其安装在我的 PC 的 Eclipse AVD 上。我有一个客户端测试工具,它启动并调用服务中的方法。最初,我通过一个控制类和活动安装了该服务,现在我已将其删除,因此该服务的清单如下所示:

所以没有活动标签。

当我从 Eclipse 中的调试图标启动它时,控制台告诉我它正在安装 apk(它是),但它没有显示为调试线程并且没有触发断点,尽管服务的行为目前还可以正如客户所见。如果我将服务标签包装在具有关联类的活动标签中并启动它,那么我可以调试它。

是否可以在不将其包装在活动中的情况下调试服务?