疯狂Android讲义

Android应用通常有多个Activity,多个Activity组成Activity栈,当前活动的Activity位于栈顶。Activity相当于Java Web开发的Servlet。当Activity处于Android应用运行时,同样受系统控制、有生命周期。

4.1 建立、配置和使用Activity

4.1.1 Activity 建立自己的Activity需要集成Activity基类,在不同的应用场景,有时也能集成Activity的子类。 

Activity间接或直接继承了Context、ContextWrapper、ContextThemeWrapper等基类,可以直接调用它们的方法。

创建一个Activity需要实现一个或多个方法,其中最常见的是onCreate()方法,该方法会再Activity创建时回调,该方法调用setContentView()方法来显示要展示的View。 findViewById()方法获取界面中的组件。 

源码44.1OtherActivity) 

4.1.2 配置Activity  Android应用要求所有应用程序组件都必须显式进行配置。 

4.1.3 启动、关闭Activity   用finish()方法结束(源码44.1StartActivity

4.1.4 用Bundle在Activity之间交换数据:用Activity之间的信使Intent,Intent提供了多个重载方法来携带数据。 

源码44.1BundleTest) 

4.1.5 启动其它Activity并返回结果 

源码44.1ActivityForResult) 

4.2 Activity的回调机制 

4.3 Activity的生命周期与加载模式

Activity的活动状态由Android以Activity栈的形式管理,当前活动的Activity位于栈顶。Activity大致有4个状态:活动状态、暂停状态、停止状态、销毁状态。 

4.3.1 Activity的生命周期 P263 

4.3.2 Activity与Servlet的相似性与区别 

4.3.3 Activity的4种加载模式

4.4 Fragment 详解 

4.4.1 Fragment 概述 

4.4.2 创建Fragment

源码44.4FragmentTest) 

4.4.3 Fragment与Activity通信

把Fragment添加到Activity的方法:

方法一:在布局文件中使用<fragment .../>元素,其android:name属性指定Fragment的实现类。

方法二:通过Activity的getFragmentManager()方法返回FragmentManager,调用FragmentManager.beginTransaction()方法即可返回FragmentTransaction对象,这个对象的add()方法可以添加Fragment。 

把Fragment和Activity相互查找的方法:

Fragment调用getActivity()方法可获得它所在的Activity。

Activity获取它包含的Fragment:调用关联的FragmentManager的findFragmentById()或findFragmentByTag()方法。 

android:id 和 android:tag属性都可以用于标识Fragment。

把Fragment和Activity相互传递数据的方法:

Activity向Fragment传递数据:创建Bundle数据包,调用Fragment的setArguments()方法。

Fragment向Activity传递数据(也可以运行中实时传递): 在Fragment中定义一个内部回调接口,再让Activity实现该回调接口。

4.4.4 Fragment管理与Fragment事务 (FragmentManager与FragmentTransaction)

Activity依靠FragmentManager管理Fragment。 

与数据库事务类似,FragmentTransaction代表了Activity对Fragment执行的多个改变操作,执行了一个或多个 改变后,需调用commit()方法提交事务。

源码44.4SeniorFragmentTest) 

4.5 Fragment的生命周期 

P285  生命周期 各个时期会被系统回调的方法。

原文地址:https://www.cnblogs.com/busor/p/3783379.html