Activity简介:
应用由多个Activity组成,一个Activity可以简单理解为一个单独的UI,一个Activity可以启动另一个Activity.一个Activity启动(start),前一个就停止(stop)
创建Activity:
1.继承Activity并实现一些回调方法,最重要的两个回调方法onCreate(),onPause()
2.实现UI
3.在manifest中声明Activity
<manifest ... >
<application ... >
<activity android:name=".ExampleActivity" />
...
</application ... >
...
</manifest >
4.使用IntentFilter
<activity android:name=".ExampleActivity" android:icon="@drawable/app_icon">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
5.开始一个Activity,使用Intent来描述要启动哪个Activity
Intent intent = new Intent(this, SignInActivity.class);
startActivity(intent);
6.开始一个Activity以获得结果使用方法startActivityForResult(),使用回调方法onActivityResult()获得结果
7.关闭一个Activity,使用回调方法finish()或者finishActivity(),如果确实不想用户返回到这个Activity就调用finish方法
对于Activity生命周期的管理:
Acitiviy本质上存在三种状态:Resumed(Running,在前端,是用户关注的焦点),Paused(另一个在前端被用户关注,但这一个还是可见的),Stopped(后台,不可见)
生命周期中的回调方法:
public class ExampleActivity extends Activity {
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
// The activity is being created.
}
@Override
protected void onStart() {
super.onStart();
// The activity is about to become visible.
}
@Override
protected void onResume() {
super.onResume();
// The activity has become visible (it is now "resumed").
}
@Override
protected void onPause() {
super.onPause();
// Another activity is taking focus (this activity is about to be "paused").
}
@Override
protected void onStop() {
super.onStop();
// The activity is no longer visible (it is now "stopped")
}
@Override
protected void onDestroy() {
super.onDestroy();
// The activity is about to be destroyed.
}
}
生命周期及回调方法图解:
从onCreate()到onDestroy()是整个生命周期,onStart()到onStop()是可见周期,onResume()到onPause()是前台周期,前台周期回调方法中的代码应该是轻量级的
保存Activity的状态:
实现onSaveInstanceState()方法,在最开始先调用父类的onSvaeInstatnceState()方法,只能在这个方法中保存瞬时态数据,持久数据应该在onPause()方法中保存