本系列原本写于博客园,现移植到自己的博客上并重新编辑。
一、Activity 的生命周期
Activity 的生命周期是被以下的函数控制的。
1 2 3 4 5 6 7 8 9 10
| public class Activity extends ApplicationContext { protected void onCreate(Bundle icicle); protected void onStart(); protected void onRestart(); protected void onResume(); protected void onFreeze(Bundle outIcicle); protected void onPause(); protected void onStop(); protected void onDestroy(); }
|
onCreate函数:函数是你进行初始化的地方,这个也是执行setContentView(View)函数的地方,setContentView(View)函数可以传入一个由XML编制的UI界面,可以使UI和具体实现完全分离。
onStart函数:该方法在 onCreate() 方法之后被调用。
onRestart()函数:在 Activity 从 Stop 状态转换为 Active 状态时被调用。
onResume()函数:在 Activity 从 Pause 状态转换到 Active 状态时被调用。
onFreeze()函数:当你的activity被暂停而其他的activity恢复与用户交互的时候这个方法会被调用(在其他activity显示之前)
onPause()函数:当系统要启动一个其他的activity时调用(其他的activity显示之前)
onStop()函数:当另外一个activity恢复并遮盖住此activity,导致其对用户不再可见时调用。
onDestroy()函数:在你的activity被销毁前所调用的最后一个方法。

二、Activity 的配置
注册Activity,除了系统自动生成的Activity之外,其他的Activity都必须在manifest.xml文件中进行注册
1 2
| <activity android:name=".Demo" android:label="@string/app_name"> //.Demo是要注册的Activity名字,当然不在默认包内的话,前面要加上包名。后面的是Activity的名字 </activity>
|
启动另一个Activity
1 2 3 4 5 6 7 8 9 10 11 12 13
| Intent intent =new Intent(CurrentActivity.this,OtherActivity.class); startActivity(intent); ```java 当然OtherActivity也必须在manifest.xml文件中进行注册。其中intent是一个通信机制,这个以后会专门介绍它。
## 三、一些关于 Activity 的技巧
锁定Activity屏幕的运行方向 ```xml <activity android:name=".EX01" android:label="@string/app_name" android:screenOrientation="portrait"> </activity>
|
全屏的Activity
1 2 3 4 5
| getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, WindowManager.LayoutParams.FLAG_FULLSCREEN); requestWindowFeature(Window.FEATURE_NO_TITLE);
|
在Activity的title中加入进度条
1 2 3 4 5 6 7 8 9
| requestWindowFeature(Window.FEATURE_INDETERMINATE_PROGRESS); setContentView(R.layout.main); setProgressBarIndeterminateVisibility(true);
requestWindowFeature(Window.FEATURE_PROGRESS); setContentView(R.layout.main); setProgress(5000);
|
Activity还有更多可以详细讲解的地方,比如它的交互事件,构造菜单、对话框等附加的交互资源以及它的数据结构等等。这些在以后的学习中我们肯定会遇到。所以今天在这里就不再赘述了,只是让大家了解一下它的简单机制。
参考资料