如何创建在后台运行的Android服务

Posted

技术标签:

【中文标题】如何创建在后台运行的Android服务【英文标题】:How to create Android service running in background 【发布时间】:2016-02-21 18:21:09 【问题描述】:

如何创建一个在我结束应用程序时继续运行的服务?

我在 http://developer.android.com/ 和 Stack Overflow 上搜索了很长时间,但没有找到解决方案。后台服务需要来自 AsyncTask 的 doInBackground() 之类的东西,因为我想用它通过 HTTPUrlRequest 更新我的数据。

更新

我找到了一个解决方案,我正在使用华为 P8 进行开发,它运行 Android 5.0 和 GUI EMUI 2.0,EMUI 具有在不明确时自动禁用后台服务(以节省电量)的功能在“安全应用程序菜单”中定义,如果您只是运行一个服务,它将在 4 分钟后终止该服务(以节省电力),您必须在该服务中运行一个新线程才能获得一个只要您继续运行的服务想要。

所以对于所有 EMUI 用户,请在您像我一样失去希望之前检查一下。

【问题讨论】:

查看documentation,它提供了您需要的所有信息 【参考方案1】:

您需要使用 Intent 服务,它用于处理您的后台服务请求并控制您应用的后台服务操作

这里有几个链接可以帮助您开始了解该主题:

http://developer.android.com/training/run-background-service/index.html

http://javatechig.com/android/creating-a-background-service-in-android

【讨论】:

示例 2 中的服务正在运行,但如果我结束它,将它扫掉,服务也会停止。 经过很长时间的搜索并尝试了许多示例后,一位朋友告诉我,我 P8 上的 Huaweis EMUI 2.0 具有仅允许特殊应用程序在后台运行的功能(到省电),切换此功能后,您的示例有效,谢谢!

以上是关于如何创建在后台运行的Android服务的主要内容,如果未能解决你的问题,请参考以下文章

请求后台任务在 Android 中多次运行

如何使用libGDX在iOS / Android后台运行应用程序

Android后台执行的定时器实现

Android 创建单独的服务运行在后台(无界面)

如何在 Android O 中保持服务在后台运行?

在 Android 操作系统中,我可以创建一个在后台运行并检测扬声器是打开还是关闭的服务吗?