首页
学习
活动
专区
圈层
工具
发布

Activity之间的通信

假设我们有这样一个常用的场景: 有两个Activity,第一个Activity展示一段文本 点击“编辑”按钮启动第二个Activity,并把这段文本当做参数传递到第二个Activity 在第二个Activity...编辑这个字符串 编辑完成后点击保存将结果返回到第一个Activity 第一个Activity展示修改后的字符串 如下图: 这是一个非常简单和常见的场景,我们一般通过 startActivityForResult...的方式传递参数,并在 onActivityResult 接收编辑后的结果,代码也很简单,如下: //第一个Activity启动编辑Activity btnEditByTradition.setOnClickListener...提供服务的Activity像一个组件一样,能对外提供功能都是以一个个方法的形式体现 通过Kotlin 协程和一个不可见的Fragment来实现。...另外 Glide 3.X 版本对图片加载任务的启动,暂停,和取消和Activity的和生命周期绑定也是通过向FragmentManager中添加了一个隐藏的Fragment来实现的。

1.8K10
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    Android Service与Activity之间的通信(bindService启动方式)

    步骤: 1.在服务文件中提供Binder 下文中onBind()方法里return的对象 2.在Activity文件中实现ServiceConnection,重写两个回调方法 3.在Activity...文件中调用bindService(),传递ServiceConnection 4.系统调用onServiceConnected()的回调方法时,可使用接口定义的方法开始调用服务 5.在Activity...文件中断开与服务的连接-------->调用unBindService() onBind方法是Service与Activity之间建立通信的桥梁(中间人),修改后的Service如下 public class...Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_start_sevice...componentName) { } } } 下面运行通过看日志了解一下其生命周期 1.绑定服务 2.多次绑定,没有日志 3.解绑服务 由此可以发现这种启动方式的生命周期与startService

    92000

    Carson带你学Android:手把手教你实现Activity与Fragment相互通信

    前言 Activity 与 Fragment 的使用在Android开发中非常多 今天,我将主要讲解 Activity 与 Fragment 如何进行通信,实际上是要解决两个问题: Activity...Fragment如何传递数据到Activity ? 下面,我将解答这两个问题。 问题1: Activity 如何传递数据到 Fragment? 答:采用 Bundle方式。...的类文件 Activity2Fragment public class Activity2Fragment extends AppCompatActivity { TextView text;...与Fragment通信 ICallBack.java public interface ICallBack { void get_message_from_Fragment(String string...讲解完毕 总结 看完本文,你应该非常清楚该如何实现 Activity 与 Fragment 相互通信 Carson带你学Android 文章系列: Carson带你学Android:页面活动-Activity

    99410

    Jetpack:使用 ActivityResult 处理 Activity 之间的数据通信

    它通过提供类型安全的 contract (协定) 来简化处理来自 Activity 的数据。.../releases/fragment 获得最新版本号 def fragment_version = "1.3.0" implementation "androidx.activity:activity...所以如果我们自己的页面间通信,则自定义ActivityResultContract即可,与GetContent类似,根据自己的需求实现这两个函数即可,当然还可以直接使用jetpack提供的StartActivityForResult...(IntentSender, Intent, int, int, int),与PendingIntent配合使用 (3)RequestMultiplePermissions 用于批量申请权限 public...String[], Uri> 对应Intent.ACTION_OPEN_DOCUMENT,输入的是类型过滤(如image/*),输出uri (12)OpenMultipleDocuments 打开多个文档,与上面类似

    1.9K30

    Activity与Fragment 以及使用接口 fragment向activity床底消息

    Fragment是用来描述一些行为或一部分用户界面在一个Activity中, (1)你可以合并多个fragment在一个单独的activity中建立多个UI面板, (2)同时重用fragment在多个activity...当activity 暂停,那么所有在这个activity的fragments将被destroy释放。...3.fragment和Activity之间的通信:(也就是控件的相互操控)   fragment控制fragment:得到一个Activity,然后通过这个Activity的getFragmentManager...findFragmentById();   Activity控制Activity:这个显然是通过Intent活动之间的通信完成。...fragment A是ListFragment的子类,每一次用户点击一个列表项目,系统调用fragment中的onListItemClick() 方法,在这个方法中可以调用onArticleSelected()方法与activity

    1.2K10

    Activity、View、Window关系,进程间通信,责任链模式,Https,数据存储

    01 理解Activity View window的关系 Activity像一个工匠(控制单元),Window像窗户(承载模型),View像窗花(显示视图)LayoutInflater像剪刀,Xml配置像窗花图纸...Activity构造的时候会初始化一个Window,准确的说是PhoneWindow。...02 Android进程间通讯的几种姿势 进程间通信即IPC,英文全称Inter-Process Communication,是指进程间数据交互的过程....完成三次握手,客户端与服务器开始传送数据. ? 四次分手:(1)客户端A发送一个FIN,用来关闭客户A到服务器B的数据传送。(2)服务器B收到这个FIN,它发回一个ACK,确认序号为收到的序号加1。...(3)服务器B关闭与客户端A的连接,发送一个FIN给客户端A。(4)客户端A发回ACK报文确认,并将确认序号设置为收到序号加1。 ? ?

    70340

    Activity

    Activity 什么是Activity 创建Activity 启动Activity 保存Activity状态 Activity的生命周期 ---- acitivyt 是什么 引用官方的说法: 是一个应用组件...窗口通常会充满屏幕,但也可小于屏幕并浮动在其他窗口之上 创建Activity 要创建Activity 必须继承自Activity或者Activity的子类。...Activity调用的第一个方法 , 创建完成后必须在Manifest文件中 声明此Activity 系统才会知道有这个Activity <application ....的状态 当用户 离开Activity去往另一个Activity时;Activity会被压入返回栈,如果内存不够就会被销毁 ,当Activity被销毁后其中的数据当然就没了,如果需要保留这些数据可调用 方法...当前activity1跳往到activity2 ,activity就会把activity1覆盖,这时就调用了此方法 onRestart(); 重新启动 onDestroy():activity再结束前调用的最后一个方法

    1.7K60

    activity

    文章目录 一、activity的生命周期 1、activity的四种状态 2、activity的生命周期 3、activity的进程优先级 二、android的任务栈 三、activity的启动模式 四...、scheme跳转协议 一、activity的生命周期 1、activity的四种状态 running:可以交互 paused:可以看见但不可以交互,成员变量都还在,但是若内存紧张,将会优先被系统回收...stopped:完全被其他的activity覆盖看不见,成员变量都还在,但是若内存紧张,将会优先被系统回收 killed:被系统回收了,所保留的信息和成员变量已经不存在了 2、activity的生命周期...重新启动才调,由不可见状态变为可见状态的时候会调用 onDestory(): 做一些资源释放 3、activity的进程优先级 前台:可交互的activity 或者 在前台activity绑定的service...):创建的activity是在栈内的话,就会复用并将栈内其上的activity移除,并回调一个newIntent(); 4、singleInstence:在整个系统在只有这一个activity,并且独享任务栈

    97430

    Fragment与Activity之间的数据交互

    2 参考链接 Activity和Fragment传递数据的两种方式 【Fragment精深系列4】Fragment与Activity之间的数据交互 2 Activity把值传递给Fragment 2.1...(3)在一个fragment从activity中剥离的时候,就会调用onDetach方法,这个时候要把传递进来的activity对象释放掉,不然会影响activity的销毁,产生不必要的错误。...Fragment中 public class MenuFragment extends Fragment implements View.OnClickListener {     // 2.1 定义用来与外部...public void onDetach() {         super.onDetach();         listterner = null;     } } 4 Fragment与Fragment...4.1 通过共同的Activity传递(主要方法) 在Activity里面添加一个字段、来临时保存要一些值。在Activity中定义一个字段、然后添加set和get方法。

    1.3K10

    安卓|Activity与fragment的相同与差异

    问题描述 相信学过安卓开发的同学都知道Activity与fragment这两个控件,这两个是我们在安卓开发中经常遇到的问题,有些人不能够分清这两个的相同点以及他们的区别,今天我们就来了解一下Activity...与fragment的相同点以及他们的区别。...相同点 Activity与fragme都是安卓开发的重要组件,他们都是安卓开发中的页面布局的重要组成部分,很多人在学习前端开发之后学习起Activity与fragment是非常简单的,他和我们前端的学习非常的相似...fragment 不同点 在安卓开发中Activity与fragment也有许许多多的不同,首先我们来介绍一下Activity这个控件,我们首先来看一下Activity代表的是整个页面,就像我们在APP...Activity与fragment的生命周期也是不同的,下面我们通过两个图片来简单的了解一下Activity与fragment的生命周期。 ? ?

    4.6K30

    Activity中启动和关闭其他Activity

    上一期我们学习了Activity的创建和配置,当时留了一个悬念,如何才能在默认启动的Activity中打开其他新建的Activity呢?那么本期一起来学习如何启动和关闭Activity。...一、概述 经过前面内容的学习,知道一个Android应用通常都会包含多个Activity,但只有一个Activity 会作为程序的入口——当该Android应用运行时将会自动启动并执行该Activity...至于应用中的其他Activity,通常都由入口 Activity启动,或由入口 Activity启动的Activity启动。 Activity启动其他Activity有如下两个方法。...上面两个方法都用到了 Intent参数,Intent是Android应用里各组件之间通信的重要方式,一个Activity通过Intent来表达自己“意图”——想要启动哪个组件,被启动的组件既可是 Activity...其中第一个Activity的界面布局非常简单,只包含一个按钮和文本提示,其中按钮的作用主要是启动第二个Activity。

    5.2K50

    Android框架简介--Activity--Activity启动

    以Activity A 启动 Activity B,Activity B所在进程未启动为例 大体经过已经几个阶段: startActivity.png 第一步 Activity A 调用AMS 启动接口...这是一个binder通讯,正常启动Activity的方式,一般我们都会通过以下的方式启动一个新的Activity startActivity(new Intent(A_Activity.this,B_Activity.class...frameworks/base/core/java/android/app/Instrumentation.java 源码注释大体意思是Instrumentation类会在应用的任何代码执行前被实列化,用来监控系统与应用的交互..., app, } stack为mFocusStack, 这一部为取出栈顶的Activity,即我们要启动的activity,虽然之前activity没启动,但ams里面栈的信息在启动进程前都已经准备好了...Activity onStart函数 activity.performStart(); } 大体流程可以用下图表示 activity启动.png 参考: 网络课程 --剖析Framework

    1.3K10
    领券