首页 > 编程语言 >activity-程序活动单元

activity-程序活动单元

时间:2023-03-17 16:45:15浏览次数:435  
标签:调用 activity 程序 intent Activity Intent 跳转 单元

Activity介绍

activity是一个与用户交互的控件,主要来显示界面以及处理界面上一些控件的事件。

Activity的生命周期

启动,运行,暂停,停止,销毁

生命周期方法

  • oncreated:创建时调用
  • onStart:即将可见时调用
  • onResume:获取焦点时调用
  • onPause:被其他activity覆盖或者屏幕锁屏时调用
  • onStop:对用户不可见时调用
  • onRestart:从停止到再启动时调用
  • onDestroy:摧毁时调用

当切换横竖屏时,会首先销毁activity,然后再重新创建,但是如果设置configChanges属性,就可以在横竖屏切换时不执行其他生命周期方法

Activity的创建 配置 启动和关闭

配置

如果要找到Activity类,首先必须在配置文件AndroidManifest.xml中声明该activity。

        <activity
            android:name=".MainActivity"
            android:exported="true">
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />
                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>
<activity android:name="cn.itcast.activitybasic.PeachActivity"/>

如果该activity与manifest标签中的package属性一致,则可以将值直接设置为 <activity android:name=".PeachActivity"/>

启动

通过startActivity()启动创建的activity;

Intent intent = new Intent(MainActivity.this,SecondActivity.class);
startActivity(intent);

通过finish()关闭当前的activity

Intent

intent是意图,如果需要从一个activity切换到另一个activity,那么就需要一个intent。它不仅可以指定当前组件要执行的动作,还可以在不同组件之间传递数据。有隐式和显式。

显式intent

Intent intent = new Intent(MainActivity.this,SecondActivity.class);
//第一个参数式当前activity ,第二个参数是要跳转的activity
还可以使用intent.setClass(this,SecondActivity.class)	
startActivity(intent);

隐式intent

隐式intent

IntentFilter

隐式intent需要intentFilter过滤器与之匹配才能生效,有action,data,category属性匹配规则。

Activity之间的跳转

activity之间的跳转主要有三个方面
第一个是从一个activityA跳转到另一个activityB
第二个是从另外一个activityB再跳转回activityA
第三个是接受B跳转回A的数据回传

  1. 两个Activity之间的传递数据
  • putExtra()
Intent intent = new Intent();
intent.setClass(this,SecondActivity.class);
intent.putExtra("studentName","黄少天");
startActivity(intent);

通过putExtra()方法将数据添加到intent中进行传递,此时,在另一个Activity中可以使用getxxxExtra()方法来接受数据。

Intent intent = new Intent();
String name = intent.getStringExtra("studentName");
//getIntExtra,getBooleanExtra
  • Bundle
    Bundle类和map类似,通过键值对的形式保存数据。
Intent intent = new Intent();
intent.setClass(this,SecondActivity.class);
Bundle bundle = new Bundle();
bundle.putString("account","苏沐橙");
intent.setExtras(bundle);
startActivity(intent);

在使用Bundle类获取数据如下

Bundle bundle = getIntent.getExtras()
String account = bundle.getString("account");

  1. activity之间的数据回传
    数据回传包括三个方法,分别是
  • startActivityForResult(Intent intent,int requestCode):开启一个Activity,当这个Activity被销毁时,会从销毁的Activity中返回数据,requestCode是请求码,用来表示activity跳转的来源。
  • setResult(int resultCode,Intent intent):携带数据进行回传,就是说当一个Activity开启第二个activity后,第二个activity需要将数据传回第一个activity,就可以使用这个方法。resultCode是返回码,用于标识来自哪个activity。在使用完setResult方法之后,需要调用finish()方法关闭activity
  • onActivityResult(int requestCode,int resultCode,Intent data):接受回传的数据,这个方法用在第一个activity,用于接受来自于跳转之后的activity传回来的数据。当第二个activity被销毁后,会自动调用第一个activity的这个方法接受回传的数据。

activity的任务栈

留 遇到写

标签:调用,activity,程序,intent,Activity,Intent,跳转,单元
From: https://www.cnblogs.com/Dumbo/p/17227292.html

相关文章

  • Web自动化——介绍与安装以及第一个web自动化程序(一)
    1.为什么要做Web自动化测试什么是web自动化测试让程序代替人,去验证网页上功能的过程web自动化测试与手工测试的比较web自动化测试执行的测试用例是手工功能测......
  • uniapp小程序工厂模式示例
    //appBusinessHandle.jsconstdoSomeThing=()=>{...}/*小程序启动时需要处理的个性逻辑*/constonLaunchHandle={}/*小程序显示时需要处理的个性逻辑*/constonS......
  • 程序安装及管理
    推荐步骤: 挂载Centos7系统光盘到/mnt目录,安装vsftpd程序,使用命令查询是否安装成功,查询vsftpd程序创建的文件和目录,卸载vsftpd程序,使用-U更新vsftpd程序 使用命令查看未......
  • js 合并单元格
    1.基于数据规则,设置好哪些是需要合并的。https://blog.csdn.net/m0_60504233/article/details/125187202?spm=1001.2101.3001.6650.7&utm_medium=distribute.pc_relevant.......
  • 直播网站程序源码,采用Redis实现购物车功能
    直播网站程序源码,采用Redis实现购物车功能1.添加pom依赖  <!--redis--><dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-st......
  • 微信小程序消息推送(订阅消息)接入 前端+后端
    1.第一步是需要在微信公众平台配置,具体参考官方文档订阅消息配置2.然后需要在前端代码中调用微信消息订阅api,调起客户端小程序订阅消息界面,具体api参考订阅消息api点......
  • Typora自动上传Oss小程序
    由于Typora的插入的文件、截图都是保存到本地,所以想把文件地址自动设置为云端地址。刚开始查了下发现Typora支持自动上传文件网上查了下教程,就开始按照Typora+pic-Go+......
  • C语言校园核酸检测管理程序[2023-03-17]
    C语言校园核酸检测管理程序[2023-03-17]实习(实训)任务书一、实习的目的和任务C语言课程设计主要是检验学生运用C语言进行系统开发的能力,以及考查学生综合运用各学科进行......
  • 桂院导航小程序开发笔记
    桂院导航小程序开发笔记首款同时实现云开发和静态项目的校园导航小程序提供校园导航和校园信息服务,具有出色的用户体验☑️地图选点与搜索☑️地图路线规划☑️校园......
  • 2023年中国高校计算机大赛-团队程序设计天梯赛(GPLT)上海理工大学校内选拔赛 L 捡贝壳
    题目链接还没补一道类似的题线段树上维护四个信息,从左端点向右连续的最大值lmx,从右端点向左连续的做大值rmx,区间最大值mx,区间和sum,每次pushup的时候如何维护四个信息?对......