Android中,我想在退出程序时,保存住当前的状态,当再次启动时,能回到退出时的状态,该怎么做呢?
2015-09-07 · 知道合伙人软件行家
关注
展开全部
Android中保存当前的状态通常是通过SharedPreferences对象来保存的。
SharedPreferences是Android平台上一个轻量级的存储类,主要是保存一些常用的配置比如窗口状态,一般在Activity中 重载窗口状态onSaveInstanceState保存一般使用SharedPreferences完成,它提供了Android平台常规的Long长 整形、Int整形、String字符串型的保存。
SharedPreferences类似过去Windows系统上的ini配置文件,但是它分为多种权限,可以全局共享访问,android123提示最终是以xml方式来保存,整体效率来看不是特别的高,对于常规的轻量级而言比SQLite要好不少,如果真的存储量不大可以考虑自己定义文件格式。xml 处理时Dalvik会通过自带底层的本地XML Parser解析,比如XMLpull方式,这样对于内存资源占用比较好。
它的本质是基于XML文件存储key-value键值对数据,通常用来存储一些简单的配置信息。其存储位置在/data/data/< >/shared_prefs目录下。
SharedPreferences对象本身只能获取数据而不支持存储和修改,存储修改是通过Editor对象实现。
实现SharedPreferences存储的步骤如下:
1、根据Context获取SharedPreferences对象
2、利用edit()方法获取Editor对象。
3、通过Editor对象存储key-value键值对数据。
4、通过commit()方法提交数据。
SharedPreferences是Android平台上一个轻量级的存储类,主要是保存一些常用的配置比如窗口状态,一般在Activity中 重载窗口状态onSaveInstanceState保存一般使用SharedPreferences完成,它提供了Android平台常规的Long长 整形、Int整形、String字符串型的保存。
SharedPreferences类似过去Windows系统上的ini配置文件,但是它分为多种权限,可以全局共享访问,android123提示最终是以xml方式来保存,整体效率来看不是特别的高,对于常规的轻量级而言比SQLite要好不少,如果真的存储量不大可以考虑自己定义文件格式。xml 处理时Dalvik会通过自带底层的本地XML Parser解析,比如XMLpull方式,这样对于内存资源占用比较好。
它的本质是基于XML文件存储key-value键值对数据,通常用来存储一些简单的配置信息。其存储位置在/data/data/< >/shared_prefs目录下。
SharedPreferences对象本身只能获取数据而不支持存储和修改,存储修改是通过Editor对象实现。
实现SharedPreferences存储的步骤如下:
1、根据Context获取SharedPreferences对象
2、利用edit()方法获取Editor对象。
3、通过Editor对象存储key-value键值对数据。
4、通过commit()方法提交数据。
展开全部
当你按下手机的Home键的时候,系统会默认调用程式栈中最上层Activity的stop()方法,然後整个应用程式都会被隐藏起来,当你再次点击手机桌面上应用程式图示时,系统会调用最上层Activity的OnResume()方法,此时不会重新打开程式,而是直接进入,会直接显示程式栈中最上层的Activity.即你在按Home键时的状态。
追问
那我是要在onstop()和onResume()方法中写什么操作呢?能不能给我一个例子呢?十分感谢啊
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
是退出程序吗? activity组件下面有相关方法 好像叫OnStop?
将相关数据保存在一个特定的文件夹中 比如游戏进程,游戏数据等等,然后再启动时读取这些数据就可以了
将相关数据保存在一个特定的文件夹中 比如游戏进程,游戏数据等等,然后再启动时读取这些数据就可以了
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
程序退出,你是home键退出,还是完全退出。保存状态,是保存什么东西的状态。
追问
是当我按back键时,会有弹出一个对话框,确认退出的对话框,当按确认时,程序并没有完全退出,而是启动了服务,在后台运行。而在退出的时候,要保存当前是在哪个页面(程序中有多个页面,页面之间是按选项卡的时候切换的)
追答
每个界面的onpause()方法里边通过 sharedprefrences 保存一个标志位,在onresume()方法里进行判断。
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询