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
为了防止数据丢失,可以在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);
}
参考这位的吧,写的非常好,形象到位,一看就懂 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();