Android服务,需要一个持续运行的服务

标签 android android-service android-debug

我是Android开发的初学者。我想构建一个一旦启动就必须保持运行的服务。

步骤 1.) 一旦用户安装应用程序并提供一些输入,服务就会启动。 (我将使用 IntentService)

步骤 2.) 现在用户移动到其他应用程序/关闭我的应用程序。我想确保服务应该继续运行并使用当前时间戳处理/保存信息。

问题:

1.) 即使用户在使用我的应用程序 1 个月后返回,我如何确保服务继续运行/保存数据。

2.) 我读到每个应用程序都是一个新用户,并且 Android 提供了单独的 VM,问题是应用程序何时被视为关闭?

3.)如果我的应用关闭,相关服务也会关闭吗?

最佳答案

1.) How I make sure that the service keeps running/saving data even if user returns after say, 1 month on my app.

用户安装应用程序后,您可以启动STICKY service但请确保您通过让 Android 操作系统在前台运行并带有持续通知来通知用户和 Android 操作系统。它将帮助您的服务长时间运行而不会被 Android 操作系统杀死。

1个月是很长的一段时间,用户可能会在这期间重新启动单元。并且您将需要重新启动您的服务。所以你应该注册重新启动完成 event

2.) I read that every app is a new user and separate VM is provided by the Android, question is when an app is considered to be closed?

不存在视为关闭的条件。实际上,当用户安装应用程序时,它默认处于停止模式,当用户第一次打开您的应用程序时,它会被激活。每当用户强制停止您的应用时,应用程序都可以再次返回到停止模式。

3.) If my app closes, related services will also close then?

如果您认为当用户不使用该应用程序时该应用程序被视为已关闭,则您的服务将不会关闭,除非 Android 操作系统在内存不足的情况下杀死它。您可以将其设置为前台正如之前建议的那样,传达 Android 操作系统的信息:你正在做重要的事情,没有任何问题,所以只有在你没有任何其他选择时才最后杀了我

关于Android服务,需要一个持续运行的服务,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25036989/

相关文章:

android - 如何管理 MediaPlayer.setVolume() + SeekBar 来设置它 + 设备音量控制

android - 如何像前台服务一样启动socket.io来保持连接和监听消息

android - 能否将不可序列化和不可解析的对象从 RemoteService 发送到 Activity?

android - 使 Systrace 在 Mac 上与 4.1.2 设备一起工作

android - 保留 fragment 状态

java - 基于云的应用程序作为 Java 后端和 Android 前端的 Restful 服务

android - 服务与 WindowManager 和通知

android - 如何调试/重置 Android 6.0 权限?

Android在TextView中显示Logcat

android - Google Play 服务 - 强制显示权限窗口(授予访问权限)