标签:启动 intent Activity 组件 Intent Android data Activtiy
新手上路,请多多指教!
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();
标签:启动,intent,Activity,组件,Intent,Android,data,Activtiy 来源: https://blog.csdn.net/m0_60557165/article/details/120089172
本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享; 2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关; 3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关; 4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除; 5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。