如何使应用程序在后台运行以执行下面提到的某些任务?

时间:2019-03-28 06:21:06

标签: android

我正在开发一个Android应用程序,该应用程序可计算屏幕到面部的距离,该应用程序具有一个摄像头预览,该应用程序可以检测到眼睛并计算该距离并在预览上方显示距离,并根据计算出的距离调整android系统字体。 目前,该应用在我运行时会计算距离。 我希望该应用程序连续计算背景距离并相应地更改字体,但现在它不计算背景距离。

我希望应用程序不要在后台暂停并且即使在后台也要计算距离并相应地更改系统字体。

5 个答案:

答案 0 :(得分:0)

这听起来像是您要在后台服务中执行的任务的典型示例。引用the Android documentation中的描述:

  

服务是一种应用程序组件,代表应用程序执行长时间运行的操作而不与用户交互或提供功能供其他应用程序使用的愿望。

答案 1 :(得分:0)

使用AsyncTask,您可以使用其核心方法,例如 doInBackground progressUpdate()

答案 2 :(得分:0)

您可以使用WorkManager。 WorkManager最适合后台作业。请参考以下链接

https://developer.android.com/topic/libraries/architecture/workmanager(简介)

https://github.com/googlesamples/android-architecture-components/tree/master/WorkManagerSample(例如)

答案 3 :(得分:0)

就像@FreddaP所说的那样,对我来说,我将在此处使用Service,因为似乎只需要执行一项任务即可,即计算手机到面部的距离一遍又一遍。

如果您想冒险一点,请使用本机代码来提高它的速度(虽然我不知道如何使它工作)。

此SO answer似乎正是您所需要的。抱歉,我以前没有在应用程序中使用过相机。

答案 4 :(得分:0)

我认为这个特殊问题(使用不带预览功能的相机)已经在this post中解决了