一、Activity 的生命周期
Activity 的生命周期是被以下的函数控制的。
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文件中进行注册
<activity android:name=".Demo" android:label="@string/app_name"> //.Demo是要注册的Activity名字,当然不在默认包内的话,前面要加上包名。后面的是Activity的名字
</activity> - 启动另一个Activity
Intent intent =new Intent(CurrentActivity.this,OtherActivity.class);
startActivity(intent);当然OtherActivity也必须在manifest.xml文件中进行注册。其中intent是一个通信机制,这个以后会专门介绍它。
三、一些关于 Activity 的技巧
- 锁定Activity屏幕的运行方向
<activity android:name=".EX01"
android:label="@string/app_name"
android:screenOrientation="portrait">// 竖屏 , 值为 landscape 时为横屏
</activity> - 全屏的Activity
// 设置全屏模式
getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN,
WindowManager.LayoutParams.FLAG_FULLSCREEN);
// 去除标题栏
requestWindowFeature(Window.FEATURE_NO_TITLE); - 在Activity的title中加入进度条
// 不明确进度条
requestWindowFeature(Window.FEATURE_INDETERMINATE_PROGRESS);
setContentView(R.layout.main);
setProgressBarIndeterminateVisibility(true); // 明确进度条
requestWindowFeature(Window.FEATURE_PROGRESS);
setContentView(R.layout.main);
setProgress(5000);
出处:(http://www.cpacm.net/2015/03/22/Android开发日记(二)——Android四大组件之Activity/)