Android: onSaveInstanceState与生命周期API的根本区别

  次阅读 作者:智能小宝 来源:互联网 2016-01-14 12:14 我要评论(0)

生命周期的态度是这样的:

在手机这样的弱能力终端上, 系统运行环境时刻是变化的, 而为了应付这种变化, 在每一次变化之前, 我都给你一次机会, 让你进行恰当的或者必要的处理 ,至于你能不能做到恰当的处理, 那就不是我力所能及的范围了. 但机会我已经给你了所以你看着办吧!

所以说, 生命周期API的存在是为了在为应用提供应付变化的能力同时最大化用户的体验价值. 也就是说, 通过对这些API的正确实现, 你可以做到几乎无缝的应用体验. 但是前提是这样的体验是分级的. 你可以分级别保存下来你认为最重要的或者是次重要的东西, 并且通过这么做最大化你的用户体验价值 , and this is ALL.

onSaveInstanceState是这样的:

它只有在stop的时候才会被调用. 而我们知道stop并不是总会被调用. 系统唯一保证会调用的函数是onPause, 所以它唯一或者说更多地倾向于要去维护的东西就只能是体验了. 或者说, 从一定的程度上说它所设计的出发点就是用户体验. 比如, 它所应付的唯一问题是什么呢? 无出进程销毁. 如果没有进程销毁这件事, 它就不可能存在. 它存在的唯一目的就是为了解决进程销毁的问题. 进程销毁导致很多问题, 而补偿它的一种办法便是状态保存(并且这种保存仍在内存中, 只不过在被销毁进程以外暂存一下它, 并没有持久化).

而内存能做的或者说其维护的更多的当然是用户体验而不是数据. 因为真正的数据大多需要持久存储, 需要跨越关机时间. 数据当然也是体验的一个部分或者说有体验的成分在里面, 但两者却绝对不是一样的东西.

另一个问题是, 用户程序与系统体验也不是同一个问题. ANDROID随意回收进程的结果是, 系统的可用性大大降低. 因为用户将面临不停的数据损失, 这个一方面是不好的体验, 另一方面对持久化数据也存在着影响. 后者虽然通过onPause接口得到解决, 但体验问题仍旧摆在那里. 而onPause的东西又并不一定会被回收, 甚至不一定会被"不可见", 在onPause的同时进行内存数据维护即体验维护显然将引入资源浪费, 根本原因还是在于两者并不是同一回事. 于是才有分开设计的两个接口.

这是演绎式程序不可避免的问题: 要么做A, 要么做B, 不可能同时做A又做B. 这个问题是由此类型系统本身的行为性决定的: 这种系统中, 行为即演绎是一切的基础. 所以行为必须区分得非常严格, 否则就可能导致不一样的结果. 那么这种系统就失去它的使用价值了.

关于冯诺依曼结构与数据流机的区别, 还是认为形式逻辑并不拥有对冯结构的分析能力.

冯结构的能力超出了现有逻辑理论, 或者说逻辑的讨论能力.

本站文章信息来源于网络以及网友投稿,本站只负责对文章进行整理、排版、编辑,是出于传递更多信息之目的,并不意味着赞同其观点或证实其内容的真实性。如果您有什么意见或建议,请联系QQ28-1688-302!

人工智能实验室
相关文章相关文章
  • 未来两年人工智能要怎么走?看这篇就够了

    未来两年人工智能要怎么走?看这篇就够了

  • 无人驾驶汽车如何改变城市生活?听听他们怎么说

    无人驾驶汽车如何改变城市生活?听听他们怎么说

  • 英国研发“杀生”机器人 通过生命体获取能量

    英国研发“杀生”机器人 通过生命体获取能量

  • 韩春雨称已能重复实验结果 近期将有消息公布

    韩春雨称已能重复实验结果 近期将有消息公布

网友点评网友点评
阅读推荐阅读推荐

据国外媒体报道,在过去两年内,聊天机器人(chatbot)、人工智能以及机器学习的研发和采用取得了巨大进展。许多初创公司正利用人工智能和...

霍金 视觉中国 图 英国著名物理学家霍金(Stephen Hawking)再次就人工智能(AI)发声,他认为:对于人类来说,强大AI的出现可能是最美妙的...

文|郑娟娟 今年,人工智能(AI) 60岁了。在AI60岁的时候,笔者想要介绍一下AI100,一个刚刚2岁的研究项目,但它的预设寿命是100年,甚至更长...

AlphaGo与李世石的人机大战,为大众迅速普及了人工智能的概念。 但对谷歌而言,除了下围棋,现在的人工智能进展到哪一步了?未来,人工智能...