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

android - 在android平台上启动服务

我正在使用startService(Intent intent)方法启动服务。当我调用此函数时,它会到达服务的onCreate但无法调用onStartCommand。这是我的代码-

服务代码——

清单.xml --

0 投票
7 回答
62826 浏览

android - 从 Activity 启动服务

在我的应用程序中,我有一个要从中启动服务的活动。有谁能够帮助我?

0 投票
2 回答
1289 浏览

android - Android服务 - 它可以弹出一个活动吗?

我有三个独立的应用程序 A、B 和 C。它们都使用服务 S。当 A、B 或 C 连接到服务 S 并且服务 S 必须启动时,它必须使用表单 F 从用户那里收集凭据。

我希望用户体验是这样的:

  1. 在 Android 主菜单中,用户点击其中一个应用程序;A、B 或 C。
  2. 出现表格 F 是因为服务尚未启动。
  3. 用户填写表格 F 并点击确定。
  4. 发生验证。
  5. 如果凭据验证成功,则会出现所选应用程序(A、B 或 C)中的相应活动。
  6. 成功验证后,任何后续启动的应用程序都不需要进行身份验证,它们只会从该应用程序中的一个 Activity 开始。
  7. 如果验证不成功并且用户按下后退按钮,则主菜单再次出现。

鉴于所有这一切,我相信我想要的是服务在必要时启动凭据表单——服务可以做到这一点吗?如果不是,那么实现这一点的替代方法是什么?

0 投票
9 回答
78384 浏览

android - 从相机拍照而不预览

我正在编写一个 Android 1.5 应用程序,它在启动后立即启动。这是一个Service并且应该在没有预览的情况下拍照。这个应用程序将记录某些区域的光密度。我可以拍照,但照片是黑色的。

经过长时间的研究,我遇到了一个关于它的错误线程。如果您不生成预览,则图像将为黑色,因为 Android 相机需要预览才能设置曝光和对焦。我创建了一个SurfaceView和监听器,但该onSurfaceCreated()事件永远不会被触发。

我猜原因是,表面不是在视觉上创建的。我还看到了一些静态调用相机的例子,用MediaStore.CAPTURE_OR_SOMETHING它拍照并用两行代码保存在所需的文件夹中,但它也不拍照。

我需要使用 IPC 并bindService()调用此函数吗?或者是否有替代方法来实现这一目标?

0 投票
1 回答
11636 浏览

android - 仅当我的应用程序中没有其他活动正在运行时,如何停止 Android 服务?

有没有办法可以测试我的应用程序中是否还有其他活动?我希望在 onDestroy 方法中停止服务,但只有在我的应用程序中没有其他活动在堆栈上仍然存在时才想这样做。

我在主要活动的 onDestroy() 方法中调用停止服务。这很完美,除了如果用户启动我的应用程序,然后在我的应用程序中启动一些活动,然后点击主屏幕并重新启动我的应用程序,他们将破坏我的订单并且主要活动现在将高于我的应用程序的其他活动。在这种状态下,如果他们点击后退按钮并“退出”我的主屏幕,他们将触发 onDestroy() 方法并终止服务,即使堆栈上还有其他活动打开。只有当我确定堆栈上没有我的其他活动打开时,我才想通过停止服务来避免这种情况。可能的?

0 投票
13 回答
166134 浏览

android - 如何让 Android Service 与 Activity 通信

我正在编写我的第一个 Android 应用程序,并试图了解服务和活动之间的通信。我有一个服务将在后台运行并执行一些基于 GPS 和时间的日志记录。我将有一个用于启动和停止服务的活动。

所以首先,我需要能够确定 Activity 启动时服务是否正在运行。这里还有一些其他问题,所以我想我可以弄清楚(但随时提供建议)。

我真正的问题:如果 Activity 正在运行并且服务已启动,我需要一种方法让服务向 Activity 发送消息。此时是简单的字符串和整数 - 主要是状态消息。这些消息不会定期发生,所以如果有其他方法,我认为轮询服务不是一个好方法。我只希望在用户启动 Activity 时进行这种通信 - 我不想从服务启动 Activity。换句话说,如果您启动 Activity 并且 Service 正在运行,当发生一些有趣的事情时,您会在 Activity UI 中看到一些状态消息。如果您不启动 Activity,您将看不到这些消息(它们不是那么有趣)。

似乎我应该能够确定 Service 是否正在运行,如果是,则将 Activity 添加为侦听器。然后在 Activity 暂停或停止时将 Activity 作为监听器移除。这真的可能吗?我能想到的唯一方法是让 Activity 实现 Parcelable 并构建一个 AIDL 文件,这样我就可以通过服务的远程接口传递它。不过,这似乎有点过头了,我不知道 Activity 应该如何实现 writeToParcel() / readFromParcel()。

有没有更简单或更好的方法?谢谢你的帮助。

编辑:

对于以后对此感兴趣的任何人,Google 提供了示例代码,用于通过示例目录中的 AIDL 处理此问题:/apis/app/RemoteService.java

0 投票
5 回答
80998 浏览

android - How to always run a service in the background?

I am in the process of creating an app that is similar to the built-in SMS app.

What I need:

  • a service that is always running in the background
  • every 5 min. the service checks the current location of the device and calls a web service
  • if certain criteria are met, the service should generate a notification (just like the SMS app)
  • when the notification is clicked, the user is taken to the app (just like the SMS app)
  • when the app is installed the service should be started
  • when the device is rebooted, the service should be started

What I have tried:
- running a regular service which worked just fine until Android kills the service
- using the AlarmManager to make the 5 min. interval call to a service. But I was not able to make this work.

0 投票
1 回答
216 浏览

android - Android 上最“抗死”的组件是什么?

我正在寻找最合适的类作为从我的活动调用的 AsyncTasks 的调度程序。

我认为它可能是其中之一:

  1. 应用程序的子类;
  2. 服务的子类;
  3. 我自己的静态东西。

至于我 - 实施第三个选择更简单。但问题是它会比服务或应用程序更“抗死”吗?此外,什么会活得更久也很有趣——应用程序还是服务?我的猜测是,只要应用程序(Android 中的任务)进程存在,应用程序就会存在。

所以基本上我需要根据它们的“抗死亡”质量来划分这些选项,因为我想依赖最“静态”的东西。

更新:

最初这个问题是在2010年提出的,当时 (1) Android 是开发人员的新平台,并且 (2) Google 文档对应用程序组件生命周期和整个应用程序流程生命周期过于含糊(在某些情况下甚至具有误导性) .

0 投票
5 回答
7138 浏览

android - 我如何一直运行服务?

我有一些我想一直在后台运行的进程。

所以我把它做成了一个Service.

我的问题是:有没有办法阻止用户杀死这个服务?(即使他使用第三方应用程序)

0 投票
16 回答
194166 浏览

android - 尝试在 Android 上启动服务

当设备在 android 上启动时,我一直在尝试启动服务,但我无法让它工作。我在网上查看了许多链接,但没有一个代码有效。我是不是忘记了什么?

AndroidManifest.xml

广播接收器