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

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

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

3.基于外部存储的传输,File/Preference/Sqlite

如果要针对第三方应用需要Content Provider

4.基于IPC的通信机制

context 与Service之间的传输,如Activity与Service之间的通信,定义AIDL接口文件。

5.基于Application Context

遇到不可序列化的数据Bitmap,InputStream,或者LinkedList链表等等数据类型就可以用此种方法。

目前有个项目正好需要用到activity的数据传递,在一个activity初始化一个ArrayList<HashMap<String, Map>>对象,然后经过一个tabactivity再传递到另外一个activity,一开始直接考虑用putExtra,测试发现数据只能传递一次,不符合我的需求,就考虑到了用Application传递

Java实现:

 public class ContactApp extends Application {

     private ArrayList<HashMap<String, Object>> contactMap =
new ArrayList<HashMap<String, Object>>(); public void setContactItem(ArrayList<HashMap<String, Object>> item) {
this.contactMap = item;
} public ArrayList<HashMap<String, Object>> getContactItem() {
return contactMap;
}
}

在AndroidManifest.xml中进行配置:

 <application
android:name=".model.ContactApp"
android:icon="@drawable/icon"
android:label="@string/app_name" >
...
</application>

在其他Activity中进行访问:

设置数据:

 ContactApp app = (ContactApp)getApplication();
app.setContactItem(contactItem);

获取数据:

 ContactApp app = (ContactApp)getApplication();
app.getContactItem();

Android activity之间数据传递和共享的方式之Application的更多相关文章

  1. android Activity之间数据传递 Parcelable和Serializable接口的使用

    Activity之间传数据时,为了避免麻烦,往往会将一些值封装成对象,然后将整个对象传递过去.传对象的时候有两种情况,一种是实现Parcelable接口,一种是实现Serializable接口.0.解 ...

  2. android 应用程序Activity之间数据传递与共享的几种途径

    一.基于消息的通信机制 Intent ---boudle ,extraAndroid为了屏蔽进程的概念,利用不同的组件[Activity.Service]来表示进程之间的通信!组件间通信的核心机制是I ...

  3. 无废话Android之smartimageview使用、android多线程下载、显式意图激活另外一个activity,检查网络是否可用定位到网络的位置、隐式意图激活另外一个activity、隐式意图的配置,自定义隐式意图、在不同activity之间数据传递(5)

    1.smartimageview使用 <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android&q ...

  4. 解析activity之间数据传递方法的详解

    转自:http://www.jb51.net/article/37227.htm 本篇文章是对activity之间数据传递的方法进行了详细的分析介绍,需要的朋友参考下     1  基于消息的通信机制 ...

  5. Android——不同activity之间数据传递

    /* * 不同activity之间数据的传递 */ public class MainActivity extends Activity { private EditText et_name; @Ov ...

  6. android 不同Activity之间数据传递

    1. 传值Activity package mydemo.mycom.demo2; import android.content.Intent; import android.support.v7.a ...

  7. 转-Activity之间数据传递之Intent数据传递

    Intent意图 可用于Activity之间的数据传递,一般可分为下面两种情况,从当前Activity传递到目标Activity后有无返回值: 1.传递后无返回值的情况: 1 2 3 4 5 6 7 ...

  8. 安卓开发-intent在Activity之间数据传递

    安卓开发-intent在Activity之间数据传递 [TOC] intent实现普通跳转 使用intent的setclass方法,示例(由此界面跳转到NewActivity界面) //使用setOn ...

  9. 简单的三方登录SDK示例,Android Activity之间数据的传递

    先建立Library工程,即普通工程然后在Android的属性勾选Library选项. 这里建立的工程为 mySdk ,Activity名为LoginActivity. LoginActivity代码 ...

随机推荐

  1. vim基本技巧

    一.无插件vim使用 1.查看修改代码 1)光标移动 h j k l    前下上后 w b       词首.词尾 ^ $       句首.句尾 2)编辑 x d r y p a i o .   ...

  2. 文件通过svn updata更新不到,并且svn st显示被删除的解决办法

    不知道什么原因导致某些文件丢失,svn updata更新后仍然没有找到,采用svn st 显示这些文件被删除,svn reslove 也解决不了,头疼了很久,最近突然解决了,具体步骤如下(已经过验证) ...

  3. Codeforces 923 A. Primal Sport

    http://codeforces.com/contest/923/problem/A 题意: 初始有一个x0,可以选择任意一个<x0的质数p,之后得到x1为≥x0最小的p的倍数 然后再通过x1 ...

  4. 01 workerman之GatewayWorker框架简单使用

    1.GatewayWorker框架是什么? GatewayWorker基于Workerman开发的一个项目框架,用于快速开发TCP长连接应用,例如app推送服务端.即时IM服务端.游戏服务端.物联网. ...

  5. linux命令中which、whereis、locate有什么区别?

    1.find find是最常用和最强大的查找命令.它能做到实时查找,精确查找,但速度慢. find的使用格式如下: #find [指定目录] [指定条件] [指定动作] 指定目录:是指所要搜索的目录和 ...

  6. Ubuntu 12.04 安装Tomcat7

    1.下载Tomcat7 打开Tomcat官网 http://tomcat.apache.org,在左边的导航栏的“Download"中找到Tomcat7.0目录,点击后进入Tomcat7的页 ...

  7. 多继承下的super()指向的不一定是直接父类

    常规情况 class Base: def __init__(self): print('Base.__init__') class A(Base): def __init__(self): super ...

  8. iOS 中 h5 页面 iframe 调用高度自扩展问题及解决

    开发需求需要在 h5 中用 iframe 中调用一个其他公司开发的 html 页面. 简单的插入 <iframe /> 并设置宽高后,发现在 Android 手机浏览器上打开可以正常运行, ...

  9. python基础-pthon

    1)python 由Guido开发 2)编译(compile)型:通过编译器把代码直接生成一个可执行文件. 比如把英语书一次性翻译成中文书.语言有:c,C++等 解释型:边编译边执行.语言如:java ...

  10. 目标检测--Selective Search for Object Recognition(IJCV, 2013)

    Selective Search for Object Recognition 作者: J. R. R. Uijlings, K. E. A. van de Sande, T. Gevers, A. ...