现在的位置: 首页 > 综合 > 正文

Activity的生命周期

2013年10月15日 ⁄ 综合 ⁄ 共 3177字 ⁄ 字号 评论关闭

Activity

Activity是应用程序的入口

负责创建窗口、用户交互等

一个程序可能会有多个Activity

使用方法:

继承自android.app.Activity

Override onCreate()

setContentView()显示视图;

findViewById()实例化组件;

AndroidManifest.xml->application标签里声明;

指定程序运行时首先加载的Activity,定义actioncategory

Activity栈:

Task--应用,包含一组Activity,以栈的形式管理;

某一个时刻只有一个Activity处在栈顶;

Activity创建,压栈,用户可交互;

Back,退栈;

Activity销毁,退栈;

如果用户离开一个任务很长时间。系统将清除了根activity之外的所有activity

通过activity的属性可以控制和修改;

Activity生命周期:         

完整生命周期

可见生命周期

前台可见生命周期

  

状态转换:

Activity 从创建到进入运行态所触发的事件:

 onCreate()-->onStart-->onResume()

从运行态到停止态所触发的事件:onPause()--->onStop()

从停止态到运行态所触发事件:onRestart()-->onStart()--->onResume()

从运行态到暂停态所触发事件:onPause()

下面是一个Activity生命周期的例子:

java文件分别是:ActivityLifeCyde.javaSecondActivity.javaDialogActivity.java

XML文件分别是:main.xmlsecond.xmldialog_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

抱歉!评论已关闭.