Activity:
Activity是应用程序的入口
负责创建窗口、用户交互等
一个程序可能会有多个Activity
使用方法:
继承自android.app.Activity;
OverrideonCreate();
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:
packagecn.class3g.activity;
importandroid.app.Activity;
importandroid.app.AlertDialog;
importandroid.app.AlertDialog.Builder;
importandroid.content.DialogInterface;
importandroid.content.Intent;
importandroid.os.Bundle;
importandroid.util.Log;
importandroid.view.View;
importandroid.widget.Button;
publicclassActivityLifeCycleextendsActivity{
privatestaticfinalStringTAG="lifeCycle";
publicvoidonCreate(BundlesavedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
Log.i(TAG,"onCreate");
ButtongoBtn=(Button)this.findViewById(R.id.go);
Buttongo_toBtn=(Button)this.findViewById(R.id.go_to);
Buttongo_to_quBtn=(Button)this.findViewById(R.id.go_to_qu);
goBtn.setOnClickListener(newView.OnClickListener(){
publicvoidonClick(Viewv){
Intentintent=newIntent(ActivityLifeCycle.this,
SecondActivity.class);
startActivity(intent);
}
});
go_toBtn.setOnClickListener(newView.OnClickListener(){
publicvoidonClick(Viewv){
Intentintent=newIntent(ActivityLifeCycle.this,
DialogActivity.class);
startActivity(intent);
}
});
go_to_quBtn.setOnClickListener(newView.OnClickListener(){
publicvoidonClick(Viewv){
Log.d(TAG,"showAlerDialog");
showAlertDialog();
}
});
}
publicvoidshowAlertDialog(){
AlertDialog.Builderbuilder=newBuilder(
ActivityLifeCycle.this);
builder.setMessage("确认退出吗?");
builder.setTitle("提示");
builder.setPositiveButton("确定",
newandroid.content.DialogInterface.OnClickListener(){
publicvoidonClick(DialogInterfacedialog,intwhich){
dialog.dismiss();
ActivityLifeCycle.this.finish();
}
});
builder.setNegativeButton("取消",
newandroid.content.DialogInterface.OnClickListener(){
publicvoidonClick(DialogInterfacedialog,intwhich){
dialog.dismiss();
}
});
//创建并显示
builder.create().show();
}
protectedvoidonStart(){
super.onStart();
Log.i(TAG,"onStart");
}
protectedvoidonResume(){
super.onResume();
Log.i(TAG,"onResume");
}
protectedvoidonPause(){
super.onPause();
Log.i(TAG,"onPause");
}
protectedvoidonStop(){
super.onStop();
Log.i(TAG,"onStop");
}
protectedvoidonDestroy(){
super.onDestroy();
Log.i(TAG,"onDestroy");
}
protectedvoidonRestart(){
super.onRestart();
Log.i(TAG,"onRestart");
}
}
第二个文件是SecondActivity.java:
第三个文件是:DialogActivity.java:
下面是XML文件的内容:
Main.xml:
Second.xml:
Dialog_activity.xml:
记得在AndroidManifest.xml文件中添加两句话:
实现的效果图为:
点前进按钮进入下面这个画面:
点返回按钮返回到上个界面:
点对话框按钮会进入这个界面:
点击退出按钮会出现下面的界面:
点击取消则返回当前页面,点击确定则退出当前Activity。
相关推荐
Activity生命周期
Activity生命周期源代码 Activity生命周期源代码 Activity生命周期源代码
很好的一张Activity生命周期图,可以很清楚了解Activity生命周期的流程图
activity生命周期详解,http://blog.csdn.net/huiblog/article/details/53292490
日志追踪(完成以下六步、明白android的四种状态的生命周期和相互切换): 1、启动app、查看控制台输出,发现依次触发onCreate、onStart、onResume这三个方法 2、点击按钮(弹窗风格的Activity),控制台输出onPause...
实验一 第一个Android程序和Activity生命周期。实验要求: 1.用工程向导生成第一个Android程序,并在模拟器上运行 注意在新建应用的选择SDK版本时选API 18 2.熟悉Android应用程序的基本文件结构 3.了解使用开发环境...
andriod 开发之 Activity生命周期总结,
Activity7大生命周期与4种启动模式(standard,singleTop,singleTask,singleIntance)
Activity生命周期Demo
详细描述 Android四大控件之一的Activity的生命周期,以及使用注意事项
一个测试Activity生命周期的小DEMO。
深入理解Activity生命周期示例代码.
Android Activity生命周期演示源码,从第一个Activity到第二个Activity,Android Activity形象的说就是一个容器,在里面放置各种控件(按钮,文本,复选框等),就形成了软件的界面~ Activity是可见的。
Activity生命周期 启动模式实例
Activity生命周期运行时序图,需要了解的可以下载看看
Activity生命周期的完美呈现,通过一个简单的项目,可以比较好地理解Activity的整个生命周期,对于初学者有一定的帮助!
activity生命周期、线程优先级、异常销毁、任务栈 参考代码
Activity生命周期及Intent传值
主要讲讲: 何时onPause, 何时onStop,何时onDestory; 以及恢复的时候,何时onRestart,何时onResume。
基于Android Studio,通过简单的实例分析Activity的生命周期