第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定

【九月打卡】第1天 Android 中 Activity 之間數(shù)據(jù)通信的方式

標(biāo)簽:
Android

课程名称:BAT大牛亲授技能+技巧 Android面试快速充电升级
课程章节:Android基础相关面试问题
主讲老师:DocMike

课程内容

1.Activity 之间的相互通信

Activity 之间的相互通信主要有三种方式:

  1. 使用通信组件 Intent,将 Bundle 对象嵌入到 Intent 中,通过调用 startActivity() 或 startActivityForResult()方法;
  2. 通过类的静态变量,可以获取 Activity 的静态信息;
  3. 通过全局变量,可以声明一个类或者直接使用 Application 对象,在这个类或 Application 对象中声明一些全局变量。

2.Activity 与 Fragment 之间的相互通信

Activity 传递数据给 Fragment:

  1. 通过 Bundle 来封装数据,通过在 Activity 中调用 fragment.setArguments(bundle) 的方式,将数据传递给 Fragment。使用时需要注意在 Fragment 中使用 isAdded() 来判断 Fragment 是否已经依附在 Activity 上。
  2. 直接在 Activity 中声明方法,在 Fragment 中获取 Activity 实例,调用方法。

Fragment 传递数据给 Activity:

  1. 使用通信框架,如 EventBus 等;
  2. 通过广播的方式;
  3. 接口回调的方式。

接口回调的方式有以下几个步骤:

  1. 在 Fragment 中定义一个公共内部回调接口,声明一个接口变量。需要接收数据的 Activity 需要实现定义的这个接口。
  2. 当 Fragment 添加到 Activity 上时,通过 onAttach() 回调方法,对接口变量进行赋值。
  3. 当 Fragment 从 Activity 上剥离时会回调 onDetach() 方法,此时需要把传递进来的 Activity 对象释放掉,不然会影响 Activity 的销毁,从而产生内存泄漏。

3.Activity 与 Service 之间的相互通信

Activity 与 Service 之间的通信总结起来有三种方式:

  1. 通过绑定服务的方式,利用 ServiceConnection 类实现通信。具体做法是:首先定义一个 Binder 对象,接着在 Activity 中实现 ServiceConnection 接口,然后在 onServiceConnected() 方法中获取绑定服务的 Binder 对象,最后通过 Binder 对象来传递数据。
  2. 通过 Intent 来传递数据,使用 Intent 的方式虽然代码上比较简单,但是只能传递简单的数据,性能上没有优势。
  3. 通过 Callback + Handler 的方式实现通信。具体做法是:首先在 Service 类中定义一个 Callback,将要传递的数据通过 Callback 传递出去,接着在 Activity 中实现 ServiceConnection 接口,重新 onServiceConnected() 方法,最后在该方法中通过 Binder 对象获取 Service 的引用,给 Service 设置 callback。**注意此时 callback 回调的方法是在异步线程中的,Activity 接收到数据时要通过 Handler 来完成线程的切换。

课程收获

通过这一章的学习,重点梳理了 Android 中常见控件的数据传递,虽然知识点都是比较基础,但是往往越是基础的地方,也是越容易被忽略的地方,通过学习,对基础知识进行了梳理,有了比较系统的认识。

图片描述
图片描述
图片描述

點(diǎn)擊查看更多內(nèi)容
2人點(diǎn)贊

若覺得本文不錯(cuò),就分享一下吧!

評(píng)論

作者其他優(yōu)質(zhì)文章

正在加載中
移動(dòng)開發(fā)工程師
手記
粉絲
12
獲贊與收藏
17

關(guān)注作者,訂閱最新文章

閱讀免費(fèi)教程

感謝您的支持,我會(huì)繼續(xù)努力的~
掃碼打賞,你說多少就多少
贊賞金額會(huì)直接到老師賬戶
支付方式
打開微信掃一掃,即可進(jìn)行掃碼打賞哦
今天注冊(cè)有機(jī)會(huì)得

100積分直接送

付費(fèi)專欄免費(fèi)學(xué)

大額優(yōu)惠券免費(fèi)領(lǐng)

立即參與 放棄機(jī)會(huì)
微信客服

購課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)

舉報(bào)

0/150
提交
取消