android服务是否有“onSaveInstanceState”的等效版本?

android服务是否有“onSaveInstanceState”的等效版本?,android,android-service,android-workmanager,Android,Android Service,Android Workmanager,当用户离开相关的活动时,我想立即将一些数据保存到文件/db中,而无需在后台使用前台服务(因为我不想引起用户的注意) 我正在考虑生成一个后台服务,如果我的后台服务由于系统压力而无法执行其工作,我可以启用START\u STICKY,并在服务重新启动时检查意图是否为空。然后才可以将服务转到前台服务,或者安排作业(通过WorkManager或AlarmManager,具体取决于数据对用户的重要性)。然而,它们都不是我想要的。前台服务将显示通知,经理将安排工作(不是立即) 有人知道怎么做吗?“当用户离开

当用户离开相关的
活动时,我想立即将一些数据保存到文件/db中,而无需在后台使用前台服务(因为我不想引起用户的注意)

我正在考虑生成一个后台服务,如果我的后台服务由于系统压力而无法执行其工作,我可以启用
START\u STICKY
,并在服务重新启动时检查意图是否为空。然后才可以将服务转到前台服务,或者安排作业(通过
WorkManager
AlarmManager
,具体取决于数据对用户的重要性)。然而,它们都不是我想要的。前台服务将显示通知,经理将安排工作(不是立即)


有人知道怎么做吗?

“当用户离开相关活动时,我想在后台不使用前台服务(因为我不想引起用户的注意)的情况下,立即将一些数据保存到文件/db中。”——让您的viewmodel使用您正在使用的任何反应性内容更新您的存储库(例如,RxJava、协同程序)或一个简单的单线程执行器(如果没有其他功能的话)。这样看来,这与您在其他情况下更新本地数据存储的方式(例如,用户单击“保存”按钮)没有太大区别。忘了提一下。我不希望在后台发送应用程序时,一旦系统终止我的进程,我的同步请求就会丢失。在现代硬件上,本地磁盘I/O通常非常快。如果您计划依靠
意图
以某种方式携带数据,您的数据不可能很大。那么,您是否对该I/O t进行了基准测试o看看要花多长时间?不是真的。关于数据:虽然它确实不是很大,但这似乎仍然是一个有效的例子,对吗?如果I/o可能是次秒,我绝对不会担心。如果它可能超过一秒,但肯定不到一分钟,一个简单的后台服务应该没有任何额外的恶作剧就可以了像
START\u STICKY
之类的东西(不管怎么说,这是错误的值,因为
Intent
总是
null
——您可能想要
START\u REDELIVER\u Intent
)。本地I/O相对容易,因为磁盘不会去任何地方(与网络I/O相比,网络I/O有很多东西可以暂时阻止I/O)。