Android后台服务与前台服务

4
我已经开发了一个Android应用程序,它执行一些下载操作,然后进行耗时处理。我的目标是在后台完成下载和处理。我已经阅读了关于后台和前台服务的相关内容,但我不能很好地理解它们以及何时使用哪种服务。
我已经使用ionic构建了应用程序的其余部分。现在我必须使应用程序在后台运行。我尝试过ionic中可用的cordova-plugin-background-mode,但不幸的是它不再维护了。
那么,我应该如何修改我的Android Studio应用程序以支持后台处理?另外,在构建完成后是否可以将Android包合并到ionic项目中?
提前感谢您的回答。

这个回答解决了你的问题吗?Cordova调度任务 - Muhannad Fakhouri
@MuhannadFakhouri 不,我已经尝试过了,但应用程序在一段时间后停止了。就我的Android Studio SDK而言,它运行了大约2500秒,而对于Android 10/11移动设备,在移动设备上运行了大约1500秒。 - Sudharshan R
你也看了这个吗 https://ionicframework.com/docs/native/foreground-service ? - Muhannad Fakhouri
就在你建议之后,我尝试了一下。它似乎起到了作用,但有时它会自己关闭。我只是做了一个简单的计数器,每秒钟增加1。有时它可以运行数小时,而其他时候则在不到20分钟内关闭。 - Sudharshan R
在Android上,您不能依赖于服务长时间存在。它们可能会被操作系统随时终止。后台服务将在您的应用程序不再处于前台后的2分钟内被终止。前台服务将持续更长时间,但并非无限期。您最好使用WorkManager来进行处理。 - Gabe Sechan
1个回答

4

首先了解 Android 服务:三种不同类型的服务:

1. 前台服务:是一种即使应用程序被终止也能保持活动状态的服务。前台服务在用户没有与应用程序交互时仍然继续运行。

应用列表:

  • 播放音乐的音乐播放器应用程序
  • 记录用户跑步数据的健身应用程序
  • 提供逐步导航指示的导航应用程序
  • 即使你执行下载操作

注意:要在后台下载并处理,请使用WorkManager,这是 Google 推荐的方法。

让我们了解后台工作:

当满足以下两个条件时,应用程序正在后台运行:

  • 应用程序的所有活动当前对用户不可见。
  • 在应用程序的活动对用户可见时,该应用程序未运行任何前台服务。

2. 后台服务: 是仅在应用程序运行时运行的服务,因此当应用程序终止时,它将被终止。它执行一些用户不直接注意到的操作。

应用列表:

  • 从服务器下载数据
  • 持续共享位置信息
  • 与服务器同步数据也使用 workmanager
  • IOT 应用程序

3. 绑定服务: 是仅在其绑定的组件仍处于活动状态时运行的服务。绑定服务仅在其他应用程序组件绑定到它时才运行。多个组件可以同时绑定到该服务,但是当它们全部取消绑定时,该服务将被销毁。

  • 以上所有应用程序都可以绑定或不绑定

非常好的答案,正是我在寻找的摘要。谢谢! - Matheus Rocha

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接