首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >Android:当一项服务被终止时,我们如何保持服务状态以便以后恢复?

Android:当一项服务被终止时,我们如何保持服务状态以便以后恢复?
EN

Stack Overflow用户
提问于 2013-10-16 11:09:12
回答 1查看 4.4K关注 0票数 6

我们已经创建了一个应用程序,本质上是一个计时器/秒表与一些装饰功能。我们定义了一个服务,用于计时并通知侦听器(活动等)。他们订阅了某些计时器事件。

我们希望能够保存计时器/秒表的状态(经过的秒、下一个事件的时间、用户提供的配置等等)。每当android杀死我们的服务(为了内存回忆),然后在用户恢复应用程序时恢复服务的状态。对我们来说,这意味着可能保存和恢复对象及其状态。我们在服务中有很多组合。基本上,我们的服务是由所有计时器模型组成的,其中的计时器模型在服务死后死亡。

有什么策略来保持服务的状态?对于我们的目的来说,PreferencesManager可能不够健壮,尽管它可能是健壮的。我们是否可以依赖服务onDestroy()方法来保存状态(例如在SQLite中)?如果android决定终止我们的进程,它甚至保证服务onDestroy()将被调用吗?

谢谢!

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-10-16 11:26:38

我们定义了一个服务,用于计时并通知侦听器(活动等)。订阅了某些计时器事件。

您不需要让服务一直运行,观看时钟滴答声。这种方法是针对用户的,因为它没有很好的理由将系统RAM绑定起来.使用AlarmManager在“特定计时器事件”中获得控制,并在剩余的时间内将您的服务保持在内存之外。

我们希望能够保存计时器/秒表的状态(经过的秒、下一个事件的时间、用户提供的配置等等)。

不要持久化“经过的秒”。坚持计时器/秒表开始的时间。经过的秒是一个减法的问题。

不要坚持“时间直到下一个事件”。保持下一个事件的时间。

这些值不会不断变化,因此可以在计时器启动或计时器生命周期中的其他主要生命周期事件时持久化。

有什么策略来保持服务的状态?

使用您自己选择的数据库、SharedPreferences或文件格式。

我们是否可以依赖服务onDestroy()方法来保存状态(例如在SQLite中)?

不是的。

如果android决定终止我们的进程,它甚至保证服务onDestroy()将被调用吗?

它不一定会被称为。

票数 12
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/19411744

复制
相关文章
当 SaaS 服务不再值得信任时...
三月初,和朋友线上小聚,我分享了自己对未来软件模式的一点思考。就我个人来说,我自己和公司使用的 SaaS 服务越多,我越有隐私和数据安全的担忧。对个人来说,「隐私」是使用 SaaS 服务不得不交的「保护费」,你只要想用,就没得选择;对公司来说,「隐私」可以用钱解决,如果你注重公司数据的「隐私」,可以通过 NDA 或者额外的协议(比如 SaaS 服务商所谓的 enterprise plan,言下之意就是你要修改我的协议条款,那么对不起,同样的东西你就要多交些钱做保护费)来保证。但是「数据安全」,无论个人和公司,似乎都没得选,只有事故来临时有无赔偿或者赔偿多寡的区别。安全三要素(confidentiality, integrity, availability)中,我最担心的是的 availability,也就是可访问性。它最不起眼,当它正常运作时,你感受不到它的存在;当它被剥夺时,就大难临头。
tyrchen
2022/03/29
4240
当 SaaS 服务不再值得信任时...
Webservice服务中如何保持Session
对于Web Service,每个方法的调用都会启动一个Session,可以用下面的方法来使多个调用在同一个Session里
跟着阿笨一起玩NET
2018/09/19
1.7K0
Webservice服务中如何保持Session
CentOS 年底,终止服务!
CentOS Linux 8将在今年12月31日来到它的生命周期终点(End of Life,EoL)。
搜云库技术团队
2021/12/27
1.1K0
恢复服务器安装信息被破坏了,服务器存储瘫痪数据恢复成功案例-服务器数据恢复…
机房突然断电导致整个存储瘫痪,加电后存储依然无法使用。经过用户方工程师诊断后认为是断电导致存储阵列损坏。
全栈程序员站长
2022/06/24
3.2K0
恢复服务器安装信息被破坏了,服务器存储瘫痪数据恢复成功案例-服务器数据恢复…
当云服务遭遇中断:为什么需要恢复计划
亚马逊S3存储服务最近在美国东海岸的可用区域经历了五个小时的中断。而许多消费者和商业应用程序都依赖云存储服务,因此S3存储服务的中断迅速级联,并且Netflix,Slack等组织的服务出现暂时瘫痪。
静一
2018/03/27
1K0
当云服务遭遇中断:为什么需要恢复计划
我们如何转型微服务?
微服务在这个时代是一个常常被提及的话题。 我在 SoundCloud时, 曾经负责把一个巨石架构的 Ruby on Rails 应用迁移到微服务。这个故事的技术层面, 我做过多次演讲并且在 SoundCloud 的技术博客上发表过系列文章。这些工程的知识是人们最感兴趣的, 但最近我意识到我从来没有向大众解释我们是如何开启这段微服务之旅的。 抱歉让技术粉失望了, 我们迁移到微服务的原因更多是从产能考虑而非纯技术原因。下面我会做出解释。 注意:这篇文章有很多修正主义的成分, 为了使它更容易理解, 我们把一个相当
DevOps时代
2018/02/02
8960
我们如何转型微服务?
[WCF-Discovery]服务如何能被”发现”
要让作为服务消费者的客户端能够动态地发现可用的服务,首先的要求服务本身具有可被发现的特性。那么到底一个可被发现的服务和一个一般的服务有何不同呢?或者说如何让一个一般的服务在寄宿的时候能够被它潜在的消费者“探测”到呢? 我们知道,WCF本质上就是消息交换的通信框架。不论是针对普通的服务操作的调用,还是定义在WS-Discovery中的服务的探测(Probe/PM)和解析(Resolve/RM),本质上都是一种消息的交换。它们并没有本质的不同,或者说唯一不同的就是消息的内容,前者是基于某个服务操作的请求和回复,
蒋金楠
2018/02/07
5420
[WCF-Discovery]服务如何能被”发现”
当不使用会话状态时禁用它
并不是所有的应用程序或页都需要针对于具体用户的会话状态,您应该对任何不需要会话状态的应用程序或页禁用会话状态。
Java架构师必看
2021/03/22
5070
如何让你的微服务保持稳定
在用微服务工作时,我们通常还需要在本地进行一些开发,这可能是一个痛点。在本篇文章中,我们将探讨一个可能有效的解决方案。
Techeek
2018/07/09
8590
Netty在Dubbo服务暴露时何时被使用
关于Dubbo的服务暴露流程,网络上已经有很多优质的文章.此篇文章以Dubbo的服务暴露为主线(不会详细讲解),观察一下,Netty在服务暴露过程中何时被使用.
书唐瑞
2022/06/02
7390
Netty在Dubbo服务暴露时何时被使用
SaaS-有状态服务和无状态服务
有状态和无状态服务是两种不同的服务架构,两者的不同之处在于对于服务状态的处理。服务状态是服务请求所需的数据,它可以是一个变量或者一个数据结构。无状态服务不会记录服务状态,不同请求之间也是没有任何关系;而有状态服务则反之。对服务器程序来说,究竟是有状态服务,还是无状态服务,其判断依据——两个来自相同发起者的请求在服务器端是否具备上下文关系。
cwl_java
2020/01/02
3K0
当企业服务总线遇到云服务
本文主要介绍企业服务总线的常见应用场景,与大家共同探讨在云环境、微服务中传统企业服务总线所面临的问题,结合普元企业服务总线产品向大家分享我们该如何解决这些问题。
yuanyi928
2020/08/04
3.6K0
当企业服务总线遇到云服务
当提到“事件驱动”时,我们在说什么?
去年年底(2016年底),我和ThoughtWorks同事一起参加了一个研讨会,讨论“事件驱动”的本质。在过去的几年里,我们构建的很多系统都大量使用了事件。对于这些系统,人们常常赞誉有加,但批评的声音也不绝于耳。我们的北美办公室组织了一次峰会,来自世界各地的ThoughtWorks资深开发者出席会议并分享了他们的想法。
ThoughtWorks
2019/05/05
5160
当提到“事件驱动”时,我们在说什么?
当谈论协程时,我们在谈论什么
作者:watsonliu,腾讯 WXG 应用开发工程师 「什么是协程?」几乎是现在面试的必考题。一方面,Donald E. Knuth 说「子过程是协程的一种特殊表现形式」;另一方面,由于 coroutine 的中文翻译「协程」中包含有「程」字,因此一般会拿来与「进程」、「线程」进行比较,称为「轻量级线程」。 第一部分介绍协程的历史; 第二部分主要是介绍函数调用和协作式多任务处理,虽然其他介绍协程的文章中也都讲解了函数调用,在本文中,我在构思如何进行分享时,特意使用汇编来实现函数调用 (汇编实现 main
腾讯技术工程官方号
2022/11/21
1.4K0
当谈论协程时,我们在谈论什么
当谈论元宇宙时,我们在谈论什么?
由于这是“Building the Metaverse”系列的首篇文章,我想花点时间来思考这个词的含义,它是如何演变的,以及未来可能带来什么。
用户1324186
2022/02/18
3760
当谈论元宇宙时,我们在谈论什么?
微服务,我们如何与你相处
本文为《架构探险-轻量级微服务架构》(黄勇 著)序 微服务来了,有了“服务”这两个字,这注定又是个一说就明白、一举例就糊涂、一讨论就吵架的概念。微服务的出现有其必然的商业背景和架构哲学,如何更好的认识微服务的内涵、如臂使指的应用微服务架构,还是有着很多挑战的,这也许就是本书被命名为“架构探险”的原因。 企业数字化转型驱动架构升级 互联网经济深刻改变了我们身边的商业环境,消费者的生活方式日益数字化,人们可以在任何时间、任何地点利用线上、线下渠道体验无缝购物,运用社交媒体表达自我,
yuanyi928
2018/04/02
7360
微服务,我们如何与你相处
Android6.0 DeviceIdle服务分析状态切换总结
Android6.0以后引入了Doze和Standby省电模式,看了下源码,主要体现在DeviceIdle服务中。
用户2930595
2018/08/23
9850
Android6.0 DeviceIdle服务分析状态切换总结
如何实现24小时客户服务
那么有没有什么方法可以实现这一想法呢?在想解决方案之前我们可以先来谈谈客服的作用。
小炮
2022/03/21
4130
点击加载更多

相似问题

当app被终止时,服务被停止。

24

当服务被系统自动终止时,取消Android通知

30

当屏幕关闭时服务被终止

10

Android服务被终止

30

当服务被OS或taskmanager终止时android如何处理

11
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文