Android日志:Intent与显式跳转、隐式跳转

2021-09-23  本文已影响0人  搬码人

关于Intent

下面是取自Android开发者文档中对Intent的简介:

Intent 用于通过描述您想在某个 Intent对象中执行的简单操作(如“查看地图”或“拍摄照片”)来启动另一应用中的某个 Activity。这种 Intent 称作隐式 Intent,因为它并不指定要启动的应用组件,而是指定一项操作并提供执行该操作所需的一些数据
当您调用 startActivity()startActivityForResult()并向其传递隐式 Intent 时,系统会将 Intent 解析为可处理该 Intent 的应用并启动其对应的 Activity。如果有多个应用可处理 Intent,系统会为用户显示一个对话框,供其选择要使用的应用。

想了解更多可进入https://developer.android.google.cn/guide/components/intents-common?hl=zh_cn
Intent简单来说就是意图,想干嘛。

显式跳转

1、在同一个应用程序
2、不同的界面(Activity)之间的跳转
3、明确指定从哪个页面切换到那个页面

实现同一个应用中两个不同页面的跳转:

  mJump.setOnClickListener {
            //明确指定从当前页面跳转到MediaActivity页面
            Intent(this,MediaActivity::class.java).apply {
                startActivity(this)
            }
        }

返回有不同的实现方式:
方式1:
跳转其实就是将跳转之后的当前页面放入到任务栈之中,当finish()之后就将该页面推出任务栈,显示任务栈中的下一个也就是跳转前的页面。

 mBack.setOnClickListener {
            finish()
        }

方式2:
在AndroidMainfest.xml中做配置
其实其内部实现就是方式1的代码

image.png
方式2的效果: 方式2

数据传递和回传
putExtra ->只能传递系统默认的数据类型

image.png
image.png

利用Bundle传递数据

bundle bundle

隐式跳转

不同程序之间进行页面的跳转
为什么叫隐式跳转:比如我们跳转到第三方的应用界面(微信支付、京东商城),对于我们自己的程序来说并不知道是具体跳转到哪个Activity,所以叫做隐式跳转。可以以同样的方式理解显示跳转。

隐式跳转到其他程序的页面

左边为MediaPlayer这个app中AndroidManifest.xml的意图配置,右边为另一个项目中的点击事件

image.png
上一篇 下一篇

猜你喜欢

热点阅读