Android Activity基础

1.Activity (活动),Android四大组件之一,主要用于和用户交互

启动另一个活动  

startActivity(MainActvity.this,SecondActivity.class)
销毁活动 :调用finish()

2 .Activity的生命周期(后面补充吧)

完整生存期: onCreate-->onDestroy

可见生存期:  onStart--> onStop

前台生存期:onResume-->onPause


3. Activity被回收了怎么办?

A启动B 之后,A被系统回收了,此刻B回退到A ,姓名和年龄等信息都丢失,用户体验就很差,

此时的A其实是重新创建的一个Activity

Android Activity基础_第1张图片

为了防止数据丢失,可以在saveInstance方法中的bundle进行数据保存

@Override
protected void onSaveInstanceState(Bundle outState) {
	super.onSaveInstanceState(outState);
	String tempData = "Something you just typed";
	outState.putString("data_key", tempData);
}

那么系统回收A的时候回自动调用saveInstance方法,当A重新创建以后,在onCreate(Bundle savedInstate)方法中的savedInstate取出之前保存的数据

if (savedInstanceState != null) {
			String tempData = savedInstanceState.getString("data_key");
			Log.d(TAG, tempData);
		}

4. Activity的四种启动模式

参考这位的吧,写的非常好,形象到位,一看就懂 http://www.androidchina.net/3173.html

改变启动模式

  
查看Activity对应的活动id以及TaskId

Log.v(“MainAcivity”,this.toString());   //  可以打印出activity的进程
Log.v(“MainAcivity”, getTaskId());   //  可以打印出activity的返回栈id
5. 判断当前界面对应的是哪个Activity

当运行他人项目时候,可能打开不清楚打开这个app的某一界面对应的是哪个Actvity,这时可以写一个BaseActivity

public class BaseActivity extends Activity {

	@Override
	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		Log.d("BaseActivity", getClass().getSimpleName());
	}
}
然后所有的Activity继承 BaseActivity

6. 随时退出程序(一键退出当前应用)

创建一个Activity活动管理器

public class ActivityCollector {

	public static List activities = new ArrayList();
    //将Activity加入到activities管理数组中
	public static void addActivity(Activity activity) {
		activities.add(activity);
	}
    //从管理数组中删除一个activity
	public static void removeActivity(Activity activity) {
		activities.remove(activity);
	}
‘//从管理数组中销毁全部activity
	public static void finishAll() {
		for (Activity activity : activities) {
			if (!activity.isFinishing()) {
				activity.finish();
			}
		}
	}

}
然后在BaseActivity中对Activity进行处理,当然前提是每个Activity都要继承 BaseActivity
public class BaseActivity extends Activity {

	@Override
	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
        //每个Actvity创建时候都加入到Activity数组管理器中
		Log.d("BaseActivity", getClass().getSimpleName());
		ActivityCollector.addActivity(this);
	}
	
	@Override
	protected void onDestroy() {
		super.onDestroy();
         //每个Actvity销毁后从Activity数组管理器中删除
		ActivityCollector.removeActivity(this);
	}
	
}

然后在一键退出应用的时候调用

ActivityCollector.finishAll();



你可能感兴趣的:(Android Activity基础)