Android之路——认识Activity
Activity: 一个可见的用户控件,几乎是所有其它控件的容器,有点像是Winform 里面的 Form 控件
建立一个Activity:
申明一个 class 并继承 于 Activity ,一定要overwrite 它的 OnCreate()方法
一个Activity必须要在AndroidManifest.xml文件下注册 在其<application></application>标签中 加入 其<activity>子标签
<application android:icon="@drawable/icon" android:label="@string/app_name">
<activity android:name=".Activity01"
android:label="@string/app_name">
<intent-filter> <!--配置了intent-filter的activity 为 该应用程序的初始activity -->
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
</application>
<!-- 这里更正一下,上面被我划掉了,我很久没再写 就是怕写错,这里更正一个错误,android应用程序 的真正入口 是 application 里面 的 Main 属性,这个 配置中 存在于 这个Activity 的 intent-filter里面 所以,这个activity 是 初始activity-->
其中,配置了intent-filter的activity为该应用程序的初始activity。
Activity的 布局:每个activity都有其自身的布局,一般通过调用res/layout 下的 .xml文件来实现。值得注意的一点是,几乎每个控件都必须制定其 android:layout_width 和 android:layout_height 两个属性的值,否则无法绘制控件。在onCreate方法中 调用 setContentView(R.layout.布局文件名) 设置该activity的布局。
Activity的生命周期
在继承Activity类的时候 就必须 覆盖它的 onCreate(Bundle) 方法,在一个 activity 从无到有 被创建的时候,启用该方法。在官方的API文档中,特别有提到onCreate中的两个方法 ,一个就是 setContentView 用于设置 activity的布局,另一个就是 findViewById ,用于获得 布局文件中的控件。
这里引用一下 API里的生命周期图,一目了然一下....
自己理解起来几个要点是,onCreate之后 并未完成activity 的启动,不要认为在代码中只覆盖了 onCreate【创建】之后万事大吉,经过onStart【启动】 -->onResume【激活】 这个activity才真正开始运行。
相应的,还有onPause【暂停】,onStop【停止】,onDestory【销毁】 三个状态 这三个状态的activity是可以在内存不足等状态下被 系统 注销掉的,其中,各个状态的装换关系见上图。
-================补充 2011.8.22 16:28=====================
在AndroidManifest 中注册 Activity 时,Activity 有一个theme 属性,可以改变 Activity 的外观
示例代码如下:
<activity android:name=".Result" android:label="@string/res_name" android:theme="@android:style/Theme.Dialog">
效果如下:
这个风格的Activity更接近 Windows 里面的窗口