Android 页面之间数据传递方式有几种?各有何优势

  1. 如果页面之间有直接关系,如Activity和在它之内的Fragment,可以直接通过接口的调用来传递数据。优势:直接,方便。 劣势:代码耦合性较高
  2. 如果是两个Activity之间传递数据,有界面切换的过程的话,可以用startActivity
    或startActivityForResult。用其中的intent参数携带数据。优势:一般用于初始化Activity和调用系统功能
  3. 如果页面之间传递数据没有页面切换的过程,可以通过广播的方式,sendBroadcast(intent);
    要接受数据的页面注册这个广播就行了。

优势:代码耦合性低,易重构,适用范围广。缺点:数据需要序列化和反序列化,代码较多

4.通过存储介质来分享数据,如页面A将数据存入数据库,SharedPreferences
,文件,Internet。页面B通过读取它们来得到数据

优势:数据保存时间长,不受到界面生命周期的影响 缺点:读取速度较慢,需要异步操作

5。采用事件总线的方式,注册和接收事件(数据),其中的代表者是EventBus,页面需要指定和注册接收事件的类型

优势:不用序列化数据,适用范围大  缺点:需要学习使用,

时间: 2024-10-08 15:26:42

Android 页面之间数据传递方式有几种?各有何优势的相关文章

ASP.NET页面之间数据传递的几种方法

1)Request.QueryString   在ASP时代,这个是较常用的方法,到了ASP.NET,好像用的人不多了,但是不管怎么说,这是一个没有过时,且很值得推荐的方法,因为不管是ASP还是ASP.NET,最基本的都还是基于HTTp协议的. 缺点是非常明显的,让在多个页面传递时,可能就Request不到了 2)Session   这个是最常用的一个方法,Session的优点是使用简单,缺点是占用服务器资源,因为每一个Session都意味这服务器需要维护相应客户的会话信息,自然如果登录的用户多

Android页面之间进行数据回传

Android页面之间进行数据回传 要求:页面1跳转到页面2,页面2再返回页面1同时返回数据 页面1添加如下代码: Intent intent = new Intent(); intent.setClass(页面1.this, 页面2.class); Bundle bundle = new Bundle(); intent.putExtras(bundle);//将Bundle添加到Intent,也可以在Bundle中添加相应数据传递给下个页面,例如:bundle.putString("abc&

不同页面之间实现参数传递的几种方式讨论

不同页面之间实现参数传递的几种方式讨论(黎声)   由于web系统采用http协议在浏览器和服务器之间传输数据,而http协议是一种无状态的协议,如何在不同页面之间传递数据,可以有一下几种方式 方式一:表单方式传递   表单传递参数是一种最简单,也是最基本的参数传递方式.注意:表单元素隐藏按钮的使用 方式二:带参数的url方式传递   带参数的url写法: url?参数名1=值1&参数名2=值2. 方式三:请求request对象   可以将数据绑定到request对象上,通过request对象g

ASP.NET页面之间传递值的几种方式

页面传值是学习asp.net初期都会面临的一个问题,总的来说有页面传值.存储对象传值.ajax.类.model.表单等.但是一般来说,常用的较简单有QueryString,Session,Cookies,Application,Server.Transfer 一.QueryString QueryString是一种非常简单的传值方式,他可以将传送的值显示在浏览器的地址栏中.如果是传递一个或多个安全性要求不高或是结构简单的数值时,可以使用这个方法.但是对于传递数组或对象的话,就不能用这个方法了.

Android开发之数据存储的四种方式之SharedPreferences

Android项目开发中使用的数据存储方式有:网络存储.sqlite存储.File存储和SharedPreferences存 储,四种存储方式对应的Demo别人是NetworkDemo.SqliteDemo.FileDemo和SharedPreferencesDemo, 根据应用的场景选择其中一种或多种方式,比如在登录界面验证,需要将用户名和密码通过SharedPreferences方式保存,注册信息的时候需要通 过网络将数据存储到后台数据库中.结合一个登录界面的验证,使用SharedPrefe

Android activity之间数据传递和共享的方式之Application

1.基于消息的通信机制  Intent ---bundle ,extra 数据类型有限,比如遇到不可序列化的数据Bitmap,InputStream,或者LinkedList链表等等数据类型就不太好用. 2.利用static静态数据, public static成员变量: 3.基于外部存储的传输,File/Preference/Sqlite 如果要针对第三方应用需要Content Provider 4.基于IPC的通信机制 context 与Service之间的传输,如Activity与Serv

不同页面之间实现参数传递的几种方式

由于web系统采用http协议在浏览器和服务器之间传输数据,而http协议是一种无状态的协议,如何在不同页面之间传递数据,可以有一下几种方式: 方式一:表单方式传递表单传递参数是一种最简单,也是最基本的参数传递方式.注意:表单元素隐藏按钮的使用 方式二:带参数的url方式传递带参数的url写法: url?参数名1=值1&参数名2=值2 方式三:请求request对象可以将数据绑定到request对象上,通过request对象getAttribute和setAttribute方法读写 方式四:用户

列举ASP.NET 页面之间传递值的几种方式

因为ASP.NET的页面表单提交到自身,完成回传的功能,所以默认情况下不能使用POST方式进行多页面传值. 1.使用QueryString, 如....?id=1; response. Redirect().... 将传送的值显示在浏览器的地址栏中,不能传递数组或对象.使用简单,对于安全性要求不高时传递数字或是文本值非常有效. 使用方法:1.在源页面的代码中用需要传递的名称和值构造URL地址. 2.在源页面的代码用Response.Redirect(URL);重定向到上面的URL地址中. 3.在

ASP.NET页面之间传递值的几种方式 (转)

页面传值是学习asp.net初期都会面临的一个问题,总的来说有页面传值.存储对象传值.ajax.类.model.表单等.但是一般来说,常用的较简单有QueryString,Session,Cookies,Application,Server.Transfer. 一.QueryString QueryString是一种非常简单的传值方式,他可以将传送的值显示在浏览器的地址栏中.如果是传递一个或多个安全性要求不高或是结构简单的数值时,可以使用这个方法.但是对于传递数组或对象的话,就不能用这个方法了.