新手上路,请多多指教!
Activity是什么?
Activity英文译为:活动。
Activity是安卓四大组件(Activity、Service、ContentProvider、BroadcastReceiver)之一,它是一个界面,用户可以通过操作与这个“界面”进行交互从而实现某些操作。
Activity的生命周期
onCreate()
在Activity第一次启动的时候执行
onStart()
在Activity界面加载显示出来的时候执行
onResume()
在Activity解除了被锁屏状态或者被其他东西盖住了,系统就会调用onResume()方法,让Activity再次今入运行状态
onPause()
在Activity被其他东西覆盖住了(对话框)或者锁屏了是调用
onStop()
在Activity转到新的Activity或者home箭调用
onDestroy()
在Activity被销毁的时候执行
ps:图片来源于网络
创建一个Activity
使用软件:android studio
Activity之间的“沟通的桥梁”——Intent
Intent是什么
Intent译为“意图”,可以指定当前组件要执行的动作、用来不同组件之间的数据传递、启动Activity和Service、发送广播等
显示意图
可以直接通过类名开启指定的目标组件
隐式意图
可以用来启动其他应用的组件,Android会通过intent filter的action、data或者category来匹配目标的组件
启动一个Activity
Intent的构造方法
一般启动
//创建一个Intent对象
Intent intent=new Intent(MainActivity.this,SecondActivity.class);
//启动Activity
startActivity(intent);
带结果启动
第一个参数是一个Intent对象,第二个参数是请求码
Intent intent=new Intent(MainActivity.this,SecondActivity.class);
startActivityForResult(intent,2);
返回Activty
一般返回
调用finsh()方法
带结果返回
第一个参数:参数类型是int,是用于知道是谁返回的
第二个参数:参数类型是Intetn的实例化对象
int result_Code=3;
Intent data=new Intent();
setResult(result_Code,data);
finish();
接受返回的数据
当我们通过第一个Acticity通过startActivityForResult()启动了另一个Activity,并且第二个也是带结果的返回,那要怎么处理另外一个的“返回”呢?
重写第一个Activiy的onActivityResult()方法
@Override
protected void onActivityResult(int requestCode, int resultCode, @Nullable Intent data) {
super.onActivityResult(requestCode, resultCode, data);
if(requestCode==2&&resultCode==3){
Toast.makeText(MainActivity.this,data.getStringExtra("Result"),Toast.LENGTH_SHORT).show();
}
}
向要启动的Activity传递数据
通过Intent.putExtra()方法把数据存储进去,当调到下个Activity的时候通过Intent.getXXXExtra()方法将数据取出来
//MainActiviy
Intent intent=new Intent(MainActivity.this,SecondActivity.class);
intent.putExtra("Messsage","This is MainAcitivity's message!");
//启动Activity
startActivity(intent);
//SencondActivity
Intent secondInent=getIntent();
Toast.makeText(SecondActivity.this,intent.getStringExtra("Message"),Toast.LENGTH_SHORT).show();