多个Activity之间共享数据

1.基于消息的通信机制  Intent ---boudle ,extra

数据类型有限,比如遇到不可序列化的数据Bitmap,InputStream, 或者LinkList链表等等数据类型就不太好用。

2. 利用static静态数据,public static成员变量;

3.基于外部存储的传输,  File/Preference/ Sqlite ,如果要针对第三方应用可以使用Content Provider

4.基于IPC的通信机制context 与Service之间的传输,如Activity与Service之间的通信,定义AIDL接口文件。

5. 基于Application Context,Application 伴随着APP的生命周期,所以讲数据存储在Application Context中,随时都可以访问

使用方法也很简单:
创建一个属于Application的子类,然后在manifest中申明一下这个类,这是android就为此建立一个全局可用的实例,你可以在其他任何地方使用Context.getApplicationContext()方法获取这个实例,进而获取其中的状态(变量)。
在Android应用中,多个Activity之间数据共享通信是非常常见的需求。Intent和Handler是实现这一需求的两种主要机制,但它们的工作方式和适用场景有所不同。 参考资源链接:[Android 笔试题集与答案详解](https://wenku.youkuaiyun.com/doc/62zjmudf46) 首先,Intent是一种非常常用的跨Activity通信机制。它不仅可以用于启动新的Activity,还可以用来在Activity之间传递数据。使用Intent传递数据时,可以将数据作为键值对添加到Intent中,然后启动目标Activity。在目标Activity中,可以通过`getIntent()`方法获取传递的Intent,并通过`getStringExtra()`, `getIntExtra()`等方法来提取数据。这种机制适用于简单的数据传递,但传递的数据大小有限制(最多1MB),并且所有的数据都是公开的,不建议传递敏感信息。 而Handler则提供了另一种通信机制,它主要用于在同一个线程内或不同线程之间进行消息传递。在Activity通信的场景中,可以在一个Activity中创建Handler对象,并通过`post()`, `sendMessage()`等方法发送消息或运行指令。另一个Activity可以持有这个Handler的引用来接收消息并作出相应的处理。使用Handler的优点是通信的灵活性更高,可以传递任意类型的数据,也不限于Activity之间。此外,Handler特别适合于处理耗时操作的回调,以及线程间的复杂交互。 综合来看,Intent适合于简单的数据传递和Activity之间的跳转,而Handler则适合于复杂的线程间通信以及需要高度解耦的模块之间的交互。在实际开发中,开发者应根据具体需求选择合适的通信方式。 为了更好地掌握Intent和Handler的使用,我推荐你查看《Android 笔试题集与答案详解》。这本书详细解释了Intent和Handler的概念和应用场景,同时通过大量的实例和习题帮助你加深理解。书中不仅涵盖了你当前关心的跨Activity数据共享通信问题,还包括了更多的Android开发知识点,让你在准备面试和笔试时能够更加得心应手。 参考资源链接:[Android 笔试题集与答案详解](https://wenku.youkuaiyun.com/doc/62zjmudf46)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值