是最为常见用的四大组件(activity,service服务,Content Provider内容提供者,broadcastReceiver广播接收器)之一。
简单地说:activity就是布满整个窗口或者悬浮于其他窗口上的交互界面。
当程序是由多个activity构成,但只有一个主的activity,这个activity可以通过启动其他的activity进行相关操作。当启动其他的activity时这个当前的activity将会停止,新的activity将会压入栈中,同时获取用户焦点,这时就可在这个activity上操作了,都知道栈是先进后出的原则,那么当用户按Back键时,当前的这个activity销毁,前一个Activity重新恢复。
activity的生命周期:
如何启动一个新的activity?
1.普通的启动方式:
Intent intent = new Intent(this,当前类名);
startActivity(intent);
2.从当前的Activity中传递数据到新的Activity?
Intent intent = new Intent(this,当前类名);
Bundle bundle = new Bundle();
bundle.putBoolean("bool_key",true);
intent.putExtras(bundle);
startActivity(intent);
3.启动一个带返回值的Activity,简单地说就是需要新的activity返回时将值传递给启动它的Activity。
Intent intent = new Intent(ActivityLifeDemo.this,RevalueActivity.class); (启动RevalueActivity)
startActivityForResult(intent, 0x1001); (注意跟之前的不一样哈)
在RevalueActivity中设置返回值
Intent intent = new Intent();
intent.putExtra("revalue_key","haha-revalueActivity");
setResult(0x1001,intent);
在ActivityLifeDemo中得到返回值
必须重写onActivityResult方法,通过判断requestCode来确定
if(requestCode==0x1001){
String str = data.getStringExtra("revalue_key");
}
完全退出程序
Intent Intent = new Intent();
intent.setClass(context,MainActivity.class); (主程序)
intent.setFlags(Intent.FLAG_ACTIVITY_ClEAR_TOP);
intent.putExtra("flag",EXIT_APPLICATION);
context.startActivity(intent);