UI的基础

1.Activity的生命周期
1).onCreate //创建
2).onStart  //启动
3)onResume //获取焦点
4)onPause //失去焦点
5)onRestart //重新启动
6)onDestroy//销毁
7)onStop  //停止
2.新建一个Activity
执行的生命周期是
onCreate //创建-----onStart  //启动------onResume //获取焦点


如果点返回键走的生命周期是
onPause //失去焦点------onStop  //停止-----onDestroy//销毁


如果点home键返回主菜单时的生命周期是
onPause //失去焦点------onStop  //停止


当再次进入项目时的生命周期是
onRestart //重新启动-------onStart  //启动-----onResume //获取焦点


3.如果当Activity1跳转到Activity2时生命周期是
Activity1走onPause //失去焦点----Activity2走onCreate //创建-----onStart  //启动------onResume //获取焦点------Activity1走onStop //停止-----onDestroy//销毁


如果Activity2点返回键返回Activity1时生命周期是
Activity2走onPause //失去焦点Activity1走onCreate //创建-----onStart  //启动------onResume //获取焦点----Activity2走onStop //停止-----onDestroy//销毁


如果Activity2点home键返回主菜单时的生命周期是
Activity2走onPause //失去焦点------onStop  //停止


当再次进入项目时的生命周期是
onRestart //重新启动-------onStart  //启动-----onResume //获取焦点
4.//保存由销毁 切换 内存不足时保存临时数据的方法是
@Override
    protected void onSaveInstanceState(Bundle outState) {
        super.onSaveInstanceState(outState);
        //储存因销毁 切换 内存不足时的临时数据
        outState.putString("tel","伟飞小贱贱");
        Toast.makeText(MainActivity.this,"保存成功",Toast.LENGTH_LONG).show();
        Log.d("哈哈哈哈", "onSaveInstanceState保存了数据: ");
    }


5.除onCreate以外的获取粗存的临时数据的方法
 @Override
    //恢复由销毁 切换 内存不足时保存的临时数据
    protected void onRestoreInstanceState(Bundle savedInstanceState) {
        super.onRestoreInstanceState(savedInstanceState);
        String tel = savedInstanceState.getString("tel");
        Toast.makeText(MainActivity.this,""+tel,Toast.LENGTH_LONG).show();
        Log.d("咕咕咕咕", "onRestoreInstanceState取出保存的数据: "+tel);
    }
    
   6.切换横竖屏的属性
   //这是设定成横屏的属性(注意:只设置这个属性Activity的生命周期还会继续走)
   android:screenOrientation="portrait"
   这两个只是单一的指定是哪一种方向的屏幕
   //这是设定成竖屏的属性(注意:只设置这个属性Activity的生命周期还会继续走)
   android:screenOrientation="landscape"
   
   //设置这个属性可以随意切换横竖屏
   但是也要注意一定就是这三个(orientation|keyboardHidden|screenSize)参数不能少写一个 
   不然Activity的生命周期还是会走 全写上就不走Activity的生命周期了   
   android:configChanges="orientation|keyboardHidden|screenSize"
   但是会走 public void onConfigurationChanged(Configuration newConfig) 这个方法
   @Override
    //横竖屏切换是不走Activity的生命周期是走这个方法
    public void onConfigurationChanged(Configuration newConfig) {
        super.onConfigurationChanged(newConfig);
        //这是获取是那一种屏是横屏还是竖屏
        int orientation = newConfig.orientation;
        //这是给不同的屏添加不同的布局
        if (orientation==Configuration.ORIENTATION_LANDSCAPE){
        //这是给竖屏加载的布局
            setContentView(R.layout.activity_login);
        }
        if (orientation==Configuration.ORIENTATION_PORTRAIT){
         //这是给横屏加载的布局
            setContentView(R.layout.activity_reg);
        }
    }  
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值