码迷,mamicode.com
首页 > 其他好文 > 详细

Activity生命周期学习笔记,和切屏、activity销毁时候保存数据和调用的方法

时间:2015-08-11 17:49:21      阅读:180      评论:0      收藏:0      [点我收藏+]

标签:

activity生命周期图:

技术分享

 下面介绍一下里面的方法:

oncreat():在activity一执行就运行的,此过程加载xml里的视图控件

onstart():是在activity视图在手机屏幕上可见时候调用执行

onResme():是获取手机屏幕空间的焦点,即可以点击控件时候执行

onpause():与onResme()是相反的,手机失去控件焦点时候执行

onStop()是activity视图在手机上不可见时候执行

ondestroy():是销毁activity,随即一个activity就会结束

在了解了activity的这些方法后,我们可以覆写这些方法来达到我们自己的目的:

1、手机横竖屏切换时候,activity会调用后3个方法,因此最后销毁了,再重新创建新的activity,因此执行的数据又会回到最初的开始地方,比如:pdf阅读器读到30页,我们转动屏幕又回到第一页这是用户不想的,下面由2种方法解决该问题:

(1)、我们在该activity清单文件里加上一个属性:android:configChanges="keyboardHidden|orientation"如下图:

<activity
            android:configChanges="keyboardHidden|orientation"  // keyboardHidden是隐藏软键盘,当横竖屏切换时候,系统会判断是否适合显示软键盘,后面一个是切屏 即这两个动作不会重启activity
                                      //也可以在代码中调用onConfigurationChanged(Configuration newConfig)来实现   
            android:name=".SecondActivity"
            android:label="secondactivity" >
             <intent-filter>
                <action android:name="com.example.multiactivity.SecondActivity" />
                <action android:name="com.example.multiactivity.SecondActivity2" />
                <action android:name="com.example.multiactivity.SecondActivity3" />
                <category android:name="android.intent.category.DEFAULT" />
            </intent-filter>
        </activity>

 同时也学习一下横竖屏显示的方法:

android:screenOrientation="landscape"---控制Acitvity为横屏显示。

android:screenOrientation="portrait"---控制Activity为竖屏显示

2、我们可以在覆写activity里的onSaveInstanceState(Bundle outState)方法,该方法再activity被ondestroy()时调用来保存数据,在重新创建调用oncreat()时候获取保存的值,设置page=30

protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        if(savedInstanceState!=null)
        {
        	int page=savedInstanceState.getInt("page");//取得保存的值
        	setpage(30);
        }
}


protected void onSaveInstanceState(Bundle outState) {
	// TODO Auto-generated method stub
	super.onSaveInstanceState(outState);  //将页码保存字bundle对象中
	outState.putInt("page", 30);
}

  

 

Activity生命周期学习笔记,和切屏、activity销毁时候保存数据和调用的方法

标签:

原文地址:http://www.cnblogs.com/bokeofzp/p/4721524.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!