Activity是应用程序的入口
负责创建窗口、用户交互等
一个程序可能会有多个Activity
使用方法:
继承自android.app.Activity;
Override onCreate();
setContentView()显示视图;
findViewById()实例化组件;
AndroidManifest.xml->application标签里声明;
指定程序运行时首先加载的Activity,定义action和category。
Activity栈:
Task--应用,包含一组Activity,以栈的形式管理;
某一个时刻只有一个Activity处在栈顶;
Activity创建,压栈,用户可交互;
Back,退栈;
Activity销毁,退栈;
如果用户离开一个任务很长时间。系统将清除了根activity之外的所有activity;
通过activity的属性可以控制和修改;
Activity生命周期:
完整生命周期
可见生命周期
前台可见生命周期
状态转换:
Activity 从创建到进入运行态所触发的事件:
onCreate()-->onStart-->onResume()
从运行态到停止态所触发的事件:onPause()--->onStop()
从停止态到运行态所触发事件:onRestart()-->onStart()--->onResume()
从运行态到暂停态所触发事件:onPause()
下面是一个Activity生命周期的例子:
java文件分别是:ActivityLifeCyde.java、SecondActivity.java、DialogActivity.java
XML文件分别是:main.xml、second.xml、dialog_activity.xml
下面是java文件的内容:
第一个文件是ActivityLifeCyde.java:
package cn.class3g.activity;
import android.app.Activity;
import android.app.AlertDialog;
import android.app.AlertDialog.Builder;
import android.content.DialogInterface;
import android.content.Intent;
import android.os.Bundle;
import android.util.Log;
import android.view.View;
import android.widget.Button;
public class ActivityLifeCycle extends Activity {
private static final String TAG = "lifeCycle";
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
Log.i(TAG, "onCreate");
Button goBtn = (Button) this.findViewById(R.id.go);
Button go_toBtn = (Button) this.findViewById(R.id.go_to);
Button go_to_quBtn = (Button) this.findViewById(R.id.go_to_qu);
goBtn.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
Intent intent = new Intent(ActivityLifeCycle.this,
SecondActivity.class);
startActivity(intent);
}
});
go_toBtn.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
Intent intent = new Intent(ActivityLifeCycle.this,
DialogActivity.class);
startActivity(intent);
}
});
go_to_quBtn.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
Log.d(TAG,"showAlerDialog");
showAlertDialog();
}
});
}
public void showAlertDialog() {
AlertDialog.Builder builder = new Builder(
ActivityLifeCycle.this);
builder.setMessage("确认退出吗?");
builder.setTitle("提示");
builder.setPositiveButton("确定",
new android.content.DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int which) {
dialog.dismiss();
ActivityLifeCycle.this.finish();
}
});
builder.setNegativeButton("取消",
new android.content.DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int which) {
dialog.dismiss();
}
});
//创建并显示
builder.create().show();
}
protected void onStart() {
super.onStart();
Log.i(TAG, "onStart");
}
protected void onResume() {
super.onResume();
Log.i(TAG, "onResume");
}
protected void onPause() {
super.onPause();
Log.i(TAG, "onPause");
}
protected void onStop() {
super.onStop();
Log.i(TAG, "onStop");
}
protected void onDestroy() {
super.onDestroy();
Log.i(TAG, "onDestroy");
}
protected void onRestart() {
super.onRestart();
Log.i(TAG, "onRestart");
}
}
第二个文件是SecondActivity.java:
第三个文件是:DialogActivity.java:
下面是XML文件的内容:
Main.xml:
Second.xml:
Dialog_activity.xml:
记得在AndroidManifest.xml文件中添加两句话:
实现的效果图为:
点前进按钮进入下面这个画面:
点返回按钮返回到上个界面:
点对话框按钮会进入这个界面:
点击退出按钮会出现下面的界面:
点击取消则返回当前页面,点击确定则退出当前Activity。