现场保护

当一个活动进入到了停止的状态,是有可能被系统回收的,我们都学过Activity的生命周期

当活动处于onPause() ,onStop() ,onDestroy() 三种状态时程序可能会被Android系统回收掉,这时如果之前未进行保护操作把数据保存的话就会造成用户在程序当中的数据或者修改丢失。也就是这里要讲的”现场保护”,我们希望当下次在运行程序时,上一次的数据还能恢复。

因此需要解决这种问题,Android提供了onSaveInstanceState(BundloutState)方法会在程序被回收前进行调用,它可以在程序被onStop()直前被调用,但不能保证是否在onPause()之前。保存的数据会存在一个bundle对象中,这个对象可以在下次启动程序调用onCreate(Bundle)或onRestoreInstanceState(Bundle)时作为传递的参数,这也就是为什么我们每一个activity重写的onCreate方法都有这么一段:

 protected void onCreate(Bundle savedInstanceState)
{
// TODO Auto-generated method stub
super.onCreate(savedInstanceState);
}

onCreate

onSaveInstanceState(Bundle) 里面的这个Bundle对象和onCreate中的所指相同对象。

那到底什么时候会调用这个方法,其实并不是在activity被destroy就一定调用。有时候也需要根据用户设定,我的手机会在按返回键时kill掉,home键不会kill
onSaveInstanceState(Bundle outState)
{
  super.onSaveInstanceState(outState);
  使用outState的put方法可以保存数据,每个保存方法需要传入两个参数,第一个是键,第二个是值

}

其实在安卓源码里给出了很详细的解释,这里我只是写了自己对现场保护的理解。

Android-现场保护的更多相关文章

  1. 浅谈Android应用保护(一):Android应用逆向的基本方法

    对于未进行保护的Android应用,有很多方法和思路对其进行逆向分析和攻击.使用一些基本的方法,就可以打破对应用安全非常重要的机密性和完整性,实现获取其内部代码.数据,修改其代码逻辑和机制等操作.这篇 ...

  2. 浅谈android代码保护技术_ 加固

    浅谈android代码保护技术_加固 导语 我们知道Android中的反编译工作越来越让人操作熟练,我们辛苦的开发出一个apk,结果被人反编译了,那心情真心不舒服.虽然我们混淆,做到native层,但 ...

  3. CORTEX-M3中断的现场保护问题

    在<Cortex-M3 Devices Generic User Guide.pdf>中介绍了异常入栈和出栈的情况,详见2.3 Exception model.Cortex-M3内核的寄存 ...

  4. Android 学习笔记之实时保存数据-现场保护onSaveInstanceState()

    数据保存:在软件开发中我们希望保存下各个Activity数据,以实现客户数据的时时保存,达到较好的用户体验. 那么我们需要解决如下问题: 1.什么时候保存? 2.保存哪些数据?     我想保存应用产 ...

  5. 浅谈Android应用保护(零):出发点和背景

    近几年来,无线平台特别是Android平台的安全逐渐成为各厂商关注的重点.各种新的思路和玩法层出不穷.所以,笔者基于前一段时间的学习和整理,写了这系列关于Android应用安全和保护的文章. 这5篇文 ...

  6. 浅谈android代码保护技术_加固

    可看原文: http://www.cnblogs.com/jiaoxiake/p/6536824.html 导语 我们知道Android中的反编译工作越来越让人操作熟练,我们辛苦的开发出一个apk,结 ...

  7. AIX误删除LV后如何进行现场保护和数据恢复工作

    在AIX环境下,若因维护误操作.存储mapping错误等,不小心将LV误删除,这种损失通常是巨大的.删除后的不当保护及恢复操作可能使数据无法恢复,也可能增加处理的时间与算法复杂度.如何有效保护现场,并 ...

  8. 05 Activity 现场保护

    我们接电话然后返回的 Activity将会被毁了重新创建 所以我们需要在摧毁记录一些信息还原Activity 摧毁时: //在Activi被摧毁的调用此方法 @Override protected v ...

  9. Android 学习笔记之 Actionbar作为回到上一级

    首先,给Actionbar添加返回图标: 代码: @Override protected void onCreate(Bundle savedInstanceState) { super.onCrea ...

随机推荐

  1. JavaScript优化参考

    最近在为管理系统的网站做点优化,压缩都用了工具,就没太多可以讨论的. 主要还是代码上的精简和优化.稍微整理一下,顺便做点测试. 这里先贴上项目中用来替代iFrame的Ajax处理的局部代码,本人比较讨 ...

  2. 移动端Web开发笔记

    最近写的一个移动端项目:上海 地铁指路通,之间遇到的一些问题,记录下来(以后会不断补充的): 1. 丰富的页面Meta: 1.1: 控制显示区域各种属性: <meta content=" ...

  3. UIP协议栈

    UIP协议栈笔记 http://blog.chinaunix.net/uid-23247944-id-2974928.html

  4. javascript获取host

    document.writeln(location.protocol); document.writeln(location.origin); //包括端口号 document.writeln(loc ...

  5. Python爬虫学习:三、爬虫的基本操作流程

    本文是博主原创随笔,转载时请注明出处Maple2cat|Python爬虫学习:三.爬虫的基本操作与流程 一般我们使用Python爬虫都是希望实现一套完整的功能,如下: 1.爬虫目标数据.信息: 2.将 ...

  6. 如何从uiview里面,获取其上层的uiviewcontroller

    id object = [self nextResponder]; while (![object isKindOfClass:[UIViewController class]] && ...

  7. C语言日期时间标准库

    用思维导图整理: 代码: #include <stdio.h> #include <time.h> #include <string.h> int main() { ...

  8. apache window环境下本地配置虚拟主机

    1.在httpd.conf中去掉如下注释: # Virtual hostsInclude conf/extra/httpd-vhosts.conf 2.在 httpd-vhosts.conf添加内容 ...

  9. 为GridView中的DropDownList赋值

    <Bda:GridView ID="gvMessage" runat="server" Height="70px" Width=&qu ...

  10. HttpStatusCode 枚举

    .NET Framework 类库 HttpStatusCode 枚举 包含为 HTTP 定义的状态代码的值. 命名空间:System.Net程序集:System(在 system.dll 中)   ...