ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

Android四大组件之一——Activtiy

2021-09-03 21:58:25  阅读:274  来源: 互联网

标签:启动 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. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有