利用onSaveInstanceState()方法保存Activity状态
2019独角兽企业重金招聘Python工程师标准>>>
Activity里的onSaveInstanceState()方法,虽然系统会自动调用它来保存Activity的一些数据,但当除它默认要保存的数据外,我们还要保存一些其他数据的时候, 我们就需要覆盖onSaveInstanceState()方法来保存Activity的附件信息。例如在播放视频过程中,横竖屏切换要保持当前播放时间进度,在默认情况下播放时间是不被自动保存的。
写了一个简单的播放视频的例子,在横竖屏切换时保持当前播放进度,效果图:
横屏切换:
mian.xml的代码:
[html] view plaincopy
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical" android:layout_width="fill_parent"
android:layout_height="fill_parent">
<VideoView android:id="@+id/myvideo" android:layout_width="wrap_content"
android:layout_height="wrap_content" />
</LinearLayout>
MainAcrtivity主要代码部分:
[java] view plaincopy
private VideoView videoView;
private static final String VIDEO_PATH = Environment
.getExternalStorageDirectory()
+ File.separator
+ "mymovie"
+ File.separator + "shenghuaweiji.mp4";
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
Log.v("tag", "onCreate");
if (videoView == null) {
videoView = (VideoView) this.findViewById(R.id.myvideo);
MediaController controller = new MediaController(this);
videoView.setMediaController(controller);
videoView.setVideoPath(VIDEO_PATH);
videoView.requestFocus();
}
if (savedInstanceState != null
&& savedInstanceState.getInt("currentposition") != 0) {
videoView.seekTo(savedInstanceState.getInt("currentposition"));
}
videoView.start();
}
onCreate方法中的参数savedInstanceState就是保存的Activity一些状态。
[java] view plaincopy
savedInstanceState.getInt("currentposition")
获取视频播放时间。
实现并覆盖了onSaveInstanceState方法:
[java] view plaincopy
@Override
protected void onSaveInstanceState(Bundle outState) {
// TODO Auto-generated method stub
outState.putInt("currentposition", videoView.getCurrentPosition());
Log.v("tag", "onSaveInstanceState");
super.onSaveInstanceState(outState);
}
红色代码是将当前video的播放时间存储在Bundle中。
这样在横竖屏切换时保证了播放状态,源代码:http://bigcateasymorse.googlecode.com/svn/trunk/save-activity-state1.0/
转载于:https://my.oschina.net/u/1177694/blog/519341
利用onSaveInstanceState()方法保存Activity状态相关推荐
- 用onSaveInstanceState()方法保存Activity状态
https://blog.csdn.net/yuzhiboyi/article/details/7677026 实现并覆盖了onSaveInstanceState方法: [java] view pla ...
- 爬虫如何利用session方法保持登陆状态(selenium)
爬取网站页面时需要登录后才能访问,否则获取不到页面的实际响应数据 有些网站需要我们登陆才能获取访问数据,然而往往登陆页和所要爬取的数据不在同一页面,这里一般都会想到对cookies进行处理的方法,如下 ...
- 【Android 应用开发】Activity 状态保存 OnSaveInstanceState参数解析
作者 : 韩曙亮 转载请著名出处 : http://blog.csdn.net/shulianghan/article/details/38297083 一. 相关方法简介 1. 状态保存方法示例 p ...
- 【Android 应用开发】Activity 状态保存 OnSaveInstanceState參数解析
作者 : 韩曙亮 转载请著名出处 : http://blog.csdn.net/shulianghan/article/details/38297083 一. 相关方法简单介绍 1. 状态保存方法演示 ...
- activity状态的保存和恢复
activity状态的保存和恢复 一.简介 1.保存activity状态 * 保存activity状态,onSaveInstanceState这个方法会自动保存有ID的组件的状态 * 没有ID的组件或 ...
- Fragment Transactions和Activity状态丢失
本文由 伯乐在线 - 独孤昊天 翻译.未经许可,禁止转载! 英文出处:androiddesignpatterns.欢迎加入翻译组. 下面的堆栈跟踪和异常代码,自从Honeycomb的初始发行版本就一直 ...
- HTML5 Canvas save 保存恢复状态
保存恢复状态 在绘画的时候,经常会有这种情况,本来正在用绿色笔画,突然需要用红色笔画几笔,但画完了之后又要换成绿色笔.如果是在现实中作画,可以把笔蘸上不同的墨水,画了之后又蘸上之前的墨水,或者准备几只 ...
- 保存Activity的状态
如果你想保存Activity的信息(例如,类实例的变量)而又不需要和其它的组件共享的话,你可以调用Activity的getPreferences方法,不用指定一个Preference的名字.对返回的S ...
- android生命周期方法,Android零基础入门|Activity状态和生命周期方法
原标题:Android零基础入门|Activity状态和生命周期方法 前面两期我们学习了Activity的创建和注册.以及启动和关闭,也学会了重写onCraete方法,这些知识在实际开发中远远不够,还 ...
最新文章
- Android实现导航菜单左右滑动效果
- 【VS开发】模态对话框和非模态对话框
- linux基础—课堂随笔_03 SHELL脚本编程基础
- Method Not Allowed一例
- 【机器学习实战】——常见函数积累
- LeetCode 1717. 删除子字符串的最大得分
- oracle切换sqlserver,ORACLE语法转换成sqlserver,该如何解决
- mit oracle 350平衡线,MIT MI-350 CVT 平衡线_已售器材欣赏区_信谊音响_二手音响_音响发烧站_高级音响 - 音响贵族网...
- 谈谈对水晶报表的看法
- SAP License:MM常用事物码
- 怎么让某段css代码只在Chrome 火狐 edge 浏览器生效
- add_header 'Cache-Control' 'no-store, no-cache, must-revalidate, proxy-revalidate, max-age=0'
- 计算机考试数据库相关知识点,计算机等级考试四级数据库工程师知识点总结
- Docker 安装 Redis 并配置 Docker 方式的 phpRedisAdmin
- 软件测试(测试用例)—写用例无压力
- 安卓开发 JAVA环境配置
- 统计学基础知识梳理(一)
- 基于交换芯片的五元组过滤功能
- 基于LabVIEW的电阻合格率检测装置仿真设计
- [易水寒]大一实训笔记 第二篇
热门文章
- 经济学人: 低调应用, 高调回报, 亚马逊才是AI技术最大受益企业
- 一场科技盛宴,一次“盈”满天下 安创成长营五期Demo Day完美收官
- 埃森哲:2018年科技愿景
- 全球知识图谱专家分布、研究流派(附学者名单)
- 产业丨一文读懂人工智能产业链,未来10年2000亿美元市场
- Python 之父立 Flag:明年要把 Python 速度提高 2 倍!
- 情人节,你刚表白,而我已经开始选哪里拍婚纱照了~
- 计算机毕业生“一看就想留下”的简历
- 为了提升续航,马斯克又引发一场“造芯”革命,华为比亚迪已进场
- linux中根目录下各个目录的作用