我是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/