android基础学习
来源:互联网 发布:类似于faceu的软件 编辑:程序博客网 时间:2024/05/17 07:13
super.onCreate(savedInstanceState)是调用父类的onCreate构造函数
savedInstanceState是保存当前Activity的状态信息
从字面上看saveInsanceState,是保存实例状态的。实际上,saveInsanceState也就是保存Activity的状态的。那么,saveInsanceState中的状态数据是从何处而来的呢?下面我们介绍Activity的另一个方法saveInsanceState。
onsaveInsanceState方法是用来保存Activity的状态的。当一个Activity在生命周期结束前,会调用该方法保存状态。这个方法有一个参数名称与onCreate方法参数名称相同。如下所示:
public void onSaveInsanceState(Bundle saveInsanceState){
super.onSaveInsanceState(saveInsanceState);
在实际应用中,当一个Activity结束前,如果需要保存状态,就在onsaveInsanceState中,将状态数据以key-value的形式放入到saveInsanceState中。这样,当一个Activity被创建时,就能从onCreate的参数saveInsanceState中获得状态数据。
状态这个参数在实现应用中有很大的用途,比如:一个游戏在退出前,保存一下当前游戏运行的状态,当下次开启时能接着上次的继续玩下去。再比如:电子书程序,当一本小说被阅读到第199页后退出了(不管是内存不足还是用户自动关闭程序),当下次打开时,读者可能已忘记了上次已阅读到第几页了,但是,读者想接着上次的读下去。如果采用saveInstallState参数,就很容易解决上述问题。
Bundle类是一个key-value对,“A mapping from String values to various Parcelable types.”
根据google官方的文档(http://developer.android.com/reference/android/os/Bundle.html)
类继承关系:
java.lang.Object
android.os.Bundle
Bundle类是一个final类:
public final class
Bundle
extends Objectimplements Parcelable Cloneable
两个activity之间的通讯可以通过bundle类来实现,做法就是:
(1)新建一个bundle类
- Bundle mBundle = new Bundle();
- mBundle.putString("Data", "data from TestBundle");
(3)新建一个intent对象,并将该bundle加入这个intent对象
- Intent intent = new Intent();
- intent.setClass(TestBundle.this, Target.class);
- intent.putExtras(mBundle);
两个类如下:intent从TestBundle类发起,到Target类。
类1:TestBundle类:
- import android.app.Activity;
- import android.content.Intent;
- import android.os.Bundle;
- import android.view.View;
- import android.view.View.OnClickListener;
- import android.widget.Button;
- public class TestBundle extends Activity {
- private Button button1;
- private OnClickListener cl;
- public void onCreate(Bundle savedInstanceState) {
- super.onCreate(savedInstanceState);
- setContentView(R.layout.main);
- button1 = (Button) findViewById(R.id.button1);
- cl = new OnClickListener(){
- @Override
- public void onClick(View arg0) {
- // TODO Auto-generated method stub
- Intent intent = new Intent();
- intent.setClass(TestBundle.this, Target.class);
- Bundle mBundle = new Bundle();
- mBundle.putString("Data", "data from TestBundle");//压入数据
- intent.putExtras(mBundle);
- startActivity(intent);
- }
- };
- button1.setOnClickListener(cl);
- }
类2: Target
- import android.app.Activity;
- import android.os.Bundle;
- public class Target extends Activity{
- public void onCreate(Bundle savedInstanceState) {
- super.onCreate(savedInstanceState);
- setContentView(R.layout.target);
- Bundle bundle = getIntent().getExtras(); </span> //得到传过来的bundle
- String data = bundle.getString("Data");//读出数据
- setTitle(data);
- }
- }
0 0
- android 基础学习笔记
- android 源码基础学习
- Android Jni基础学习
- 【Android】Service基础学习
- android基础学习总结
- Android学习笔记--基础
- Android 学习基础
- Android 基础学习
- android基础学习
- android 基础学习
- android的基础学习
- android基础学习笔记
- Android数据库基础学习
- 学习笔记-Android基础
- android 基础学习博客
- android 基础学习
- android broadcast基础学习
- Android- BroadCastReceiver 基础学习
- 如何让Form控件透明
- 记录一下华为内部人才市场网站
- Javascript去除字符串空格
- 【转】BufferedInputStream学习笔记
- maven相关管理
- android基础学习
- spring DriverManagerDataSource与apache BasicDataSource
- [Review Linux] filesystem
- Android开发之调用系统隐藏API
- java-RSA加密
- 镜像&AlwaysOn复制的工作原理
- Ubuntu 12.04下安装sun-java6-jdk/jre
- 动态规划---hdu1864---最大报销额
- 九度OJ 1108 堆栈的使用