Android之Activity个人见解

Activity的介绍:

每个Activity都相当于一个屏幕,为用户提供了交互的可视界面

应用程序要包含一个或多个Activity,Activity之间的运行是独立的

Activity显示的内容有两种声明方式

     1.通过xml文件来配置,我们之前都是通过这种方式

     2.将屏幕设置为某个继承自View类的对象

 

Activity配置:

        Activity属性:

name:指定Activity的实现类

           icon:指定Activity对应的图标

           label:指定该Activity的标题栏

       可以指定一个或多个<intent-filter>,该元素用于指定该Activity可响应的Intent

            <intent-filter>

            <!--决定应用程序最先启动的Activity-->

                <actionandroid:name="android.intent.action.MAIN" />

           <!--决定应用程序是否显示在程序列表里-->

                <categoryandroid:name="android.intent.category.LAUNCHER" />

              </intent-filter>

 

Activity生命周期:

Activity生命周期分为三种生命周期:

1.     前台/活动生命周期 :

OnCreate()->onStart()->onResume()->onPause()->onResume()(比如在一个Activity界面上弹出一个对话框)

2.     可视生命周期 :

OnCreate()->onStart()->onResume()->onPause()->onStop()->onRestart()->onStart()(比如一个Activity可见,按Home键时,再重新重新这个Activity)

3.     全生命周期 :

OnCreate()->onStart()->onResume()->onPause()->onStop()->onDestory()(这是Activity从开始到结束的全周期)

生命周期图:


 

总结:

由上可知,在Activity中OnCreate()中只调用一次 也就是说这个方法最适合做初始化操作。在Activity很多方法都是在OnCreate()中进行初始化。比如Service 。OnPause和OnResume()这二个方法总是会执行。所以在项目中经常需要重写这二个方法。OnPause()保存数据,OnResume()恢复数据。其余你的生命周期方法根据项目需求编写自己的代码。

 

Activity保存形式:

在Activity中所有的Activity都放置在栈中。当前台的Activity会放置在栈顶,当点击后退按键 栈顶的这个Activity会被销毁 ,紧接着Activity就会处于栈顶被显示出来

 

启动的另一种Activity的另一种形式:(startActivityForResult(intent, requestCode))

为了获取被启动的Activity所返回的结构,当前Activity需要重写

 onActivityResult(requestCode,resultCode,intent)方法

  requestCode是请求码

  resultCode代表Activity返回的结果码

 

一个应用程序在横屏切换成竖屏或者竖屏切换成横屏时,默认的Activity会重新绘制,这样的话那不是所有的数据都 会清空?当然是的。所以 我们一定得避免这种情况。如何解决这个问题呢?

设置Activity的android:configChanges="orientation"时,切屏还是会重新调用各个生命周期,切横、竖屏时只会执行一次。

设置Activity的android:configChanges="orientation|keyboardHidden"时,不会重新调用各个生命周期,只会执行onConfigurationChanged方法。


个人的一些心得。欢迎同僚们指出问题  大家一起讨论讨论、、、

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值