【Android】【笔记】《Android 入门经典》part 6 Activity

本文为个人读书笔记,大部分为书中内容摘要。仅供记录和分享学习中遇到的需要留意的问题,如有相关版权问题请及时通知作者。

简介
     Activity是ndroid系统提供的一个可视的用户交互接口,所有和用户的交互都发生在这里。Activity在创建时生成各种控件视图,这些视图负责具体功能。

Activity的作用
     Activity是Android程序中最基本的模块,它是为用户操作而展示的可视化界面。可以只有一个,可以包含多个。
     每个Activity都被赋予一个默认的窗口进行绘制,一般为满屏的,但也可以是小的浮动窗口。一个Activity还可以使用超过一个的窗口。
     Android窗口显示的可视内容是由视图构成的,这些视图继承自View类。每个视图控制窗口中一块矩形空间,父级视图包含并组织子视图的布局,底层视图在它们控制的矩形中进行绘制,对用户操作做出响应,所以,视图是Activity与用户交互的界面。

Activity的四种状态
     Runing:一个新Activity启动入栈后,在屏幕最前端,处于栈的最顶端,处于可见并可和用户交互的激活状态
     Paused:当Activity被另一个透明或者Dialog样式的Activity覆盖时的状态,此时它依然与窗口管理器保持连接,系统继续维护其内部状态,所以仍然可见,但已经失去焦点,不可与用户交互
     Stopped:当Activity不可见时,处于Stopped状态。Activity继续保留在内存中保持当前的所有状态和成员信息,假设系统别的地方需要内存的话,这是它是被回收对象的主要候选。当Activity处于Stopped状态时,一定要保存当前的数据和当前的UI状态,否则一旦Activity对出或者关闭时,当前的数据和UI就丢失了。
     Killed:Activity被杀掉以后或者被启动以前处于Killed状态。这是Activity已被移除Activity堆栈中,需要重新启动才可以显示和使用。

Activity的属性
     Android中,Activity是作为一个对象存在的,因此,它与Android中的其他对象类似,也支持很多XML属性,Activity支持的常用属性

XML属性 描述
android:name 指定Activity对应的类名
android:theme 主题
android:label 设置显示的名称,一般在Launcher里面显示
android:icon 显示的图表,在Launcher里显示
android:screenOrientation 指定当前Activity显示横竖
android:allowTaskReparenting 是否允许Activity更换从属的任务,比如从短信息任务切换到浏览器任务
android:alwaysRetainTaskState 当用户离开一个Task一段时间后,系统就会清理掉Task里除了根Activity意外的Activity,如果一个Task例的根Activity的alwaysRetainTaskState设置为true,那么前面的情况就不会出现。Task会保留所有的Activity
android: clearTaskOnLaunch 根Activity是true时,当用户离开Task并返回时,Task会清除直到根Activity
android:configChanges 当配置list发生修改时,是否调用onConfigurationChanged()方法
android:excludeFromRecentes 是否可悲显示在最近打开的Activity列表里
android:exported 是否允许Activity被其他程序调用
android:launchMode 设置Activity的启动方式standard、singleTop、singleTask、singleInstance,前两个一组,后两个一组
android:finishOnTaskLaunch 当用户重新启动这个任务的时候,是否关闭已打开的Activity
android:noHistory 当用户切换到其他屏幕时,是否需要移除这个Activity
android:taskAffinity Activity的亲属关系,默认情况同一个应用程序下的Activity有相同的关系
android:process  一个Activity运行时所在的进程名,所有程序组件运行在应用程序默认的进程组中,这个进程名跟应用程序包名一致
android:windowSoftInputMode 定义软键盘弹出的模式

AndroidManifest.xml中
     <intent-filter>设置Activity作为程序入口,该属性用来设置Activity作为程序入口,并且显示在启动栏中
     其中的<action android:name=“android.intent.action.MAIN”/>属性用来定义Activity作为Android应用程序的入口
     <category android:name="android.intent.category.LAUNCHER"/>属性指定Activity显示在Launcher里。



Activity的生命周期

概述:
     Android程序创建时,系统会自动在其.java文件中重写Activity类的onCrete方法,该方法是创建Activity时必须调用的一个方法,另外还有onStart、onResume、onPause、onStop、onRestart、onDestroy。共7个方法,这7个方法定义了Activity的完整声明周期,该完整周期又可以分成3个嵌套生命周期循环。分别是:
     前台生命周期:从onResume()调用起,至相应的onPause()调用为止。这个期间,Activity位于前台最上面并与用户进行交互,Activity会经常在暂停和恢复之间进行状态转换。设备进入休眠或有新的Activity启动时,调用onPause()方法,Activity获得结果或接受到新的Intent时,会调用onResume()方法。
     可视生命周期:从onStart()调用开始,直到响应的onStop()结束。在此期间,用户可以在屏幕上的Activity,可以不位于前台或不与用户交互。在这两个方法之间,可以保留用来向用户显示这个Activity所需的资源。
     完整生命周期:自第一次调用onCreate()开始,直到调用onDestroy()为止。Activity在onCreate()中设置所有“全局”状态以完成初始化。在onDestroy()中释放所有系统资源。

Activity的方法:
     onStart:用来启动Activity          
     @Override
     protectedvoidonStart() {
          // TODO 自动生成的方法存根
          super.onStart();
     }
     onResume:用来恢复Activity
     @Override
     protectedvoidonResume() {
          // TODO 自动生成的方法存根
          super.onResume();
     }
     onPause:用来暂停Activity
     @Override
     protectedvoidonPause() {
          // TODO 自动生成的方法存根
          super.onPause();
     }
     onStop:用来停止Activity
     @Override
     protectedvoidonStop() {
          // TODO 自动生成的方法存根
          super.onStop();
     }
     onRestart:用来重启Activity
     @Override
     protectedvoidonRestart() {
          // TODO 自动生成的方法存根
          super.onRestart();
     }
     onDestroy:用来销毁Activity 
     @Override
     protectedvoidonDestroy() {
          // TODO 自动生成的方法存根
          super.onDestroy();
     }



四种基本Activity操作

创建:
启动:
     在AndroidManifest.xml主设置文件中对要启动的Activity进行配置。
       <activity
           android:name="com.example.and_testapplication.MainActivity"
           android:label="@string/app_name">
           <intent-filter>
               <actionandroid:name="android.intent.action.MAIN"/>
               <categoryandroid:name="android.intent.category.LAUNCHER"/>
           </intent-filter>
       </activity>
     配置完Activity方法之后,可以通过关联的事件启动Activity,在关联事件中可以通过startActivity方法或者startActivities方法实现
     1、startActivity
          用来启动单个Activity
               public void startActivity(Intent intet)
          intent表示要启动的Intent对象【8.3】
     2、startActivities
          用来同时启动多个Activities
               public void startActivities (Intent[ ] intents)
          参数intents表示要启动的多个Intent对象数组

多个Activity之间的传值:
     需要使用Intent对象的putExtra方法、getExtras方法和Bundle对象

关闭Activity:
     使用finish()方法实现
          public void finish();
     在Android程序中,如果要关闭当前的Activity,直接使用finish();即可。
     还可以使用finishActivity方法实现,该方法用来关闭使用startActivityForResult方法启动的Activity,该方法的语法 中有一个int类型的参数,用来表示Activity的请求标识。







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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值