安卓独立服务

标签 android android-intent service background-process

我刚开始开发 Android 应用程序,具体来说是一项服务。

我想创建一个服务(后台服务,强制自己运行,隐藏,所以不能关闭)。而且我不知道如何构建它。然后如何启动它以及如何使其适合这些要求。它需要从 Android 启动开始运行,所以我猜它会像系统服务一样创建(或作为系统服务)。

您可能会问我为什么需要它 - 我希望它在没有任何用户交互的情况下定期向 MySQL DB 发送一些数据 - 因此它需要连续运行。

如果您能给我一个良好的开端,可能是一个教程或一些包含重要信息的结构图,那将非常有帮助。

还有一件事 - 我的目标是 Android 2.3,但如果不可能,我希望它是尽可能低的 Android 版本。

提前谢谢大家!

最佳答案

I would like to create a service (background service, forcing itself to run, hidden, so it can't be shut down).

幸运的是,这是不可能的。用户可以控制他们的设备,而不是你,他们可以关闭他们想要的任何东西。

It needs to start running from the Android start, so I guess it would be created similarly to system services (or as a system service).

系统服务是操作系统的一部分,不能通过 Android SDK 创建。

You may ask why I need that - I would like it to periodically send some data to MySQL DB without any user interaction - therefore it needs to run continuously.

不需要需要“连续运行”。那将是一个非常糟糕的实现。

如果您想定期做某事,请使用 AlarmManager 进行调度。这项工作应该由 IntentService 完成,因此服务可以在工作完成后消失,这样您就不会一直占用内存并使其成为 < em>更有可能用户会关闭你。如果您计划将设备从 sleep 模式唤醒以完成工作,您应该查看 WakefulBroadcastReceiver,或者可能是 my WakefulIntentService .

关于安卓独立服务,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18917380/

相关文章:

android - 通过 Intent 传递 ArrayList

java - 开始 Java Web 服务。从哪儿开始

使用 Microft Azure SDK 时,java 以非零退出值 2 完成

android - OpenCV 检测手和比较图像

java - 为什么系统会自动将我的 LinkedHashMap 转换为 HashMap,同时将其作为可序列化的 Intent 传递?

java - 如何使用 putExtra() 传递具有不同值的相同数据

java - 如何判断 Java 是否作为 Windows 服务运行以及是否使用了 -Xrs 标志

Android编程——将程序推送到后台

android - Android 中的 DalvikVM 与 JavaVM 的对比?

android - 通用图像加载器未加载特定链接的图像