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
具体的
1、通过intent的extra属性携带数据:
发送数据: intent.putExtra(String name.string value);//还有其他重载类型 具体的参见API文档
这里 如果是获取edittext内容 则value是 editText.getText().toString()
读取数据:在需要数据的activity中 定义新的intent ,intent.getStringExtra(key1);//注意 这里的key1要在新的activity中重新定义。
另外:也可以通过bundle
新建intent;新建bundle;对bundle用 bundle.putString(string name.string value);将bundle传入intent intent.putExtra(bundle);
获取 intent = getIntent(); Bundle =intent.getExtra();;string s=bundle.getString(name);
5、通过application context
利用整个应用程序各个Activity都能访问到的类application共享数据,主要方法是把想共享的数据放到application的子类中,然后在其他activity访问共享的数据;
主要方法:
(1)把想要共享的数据放在一个Application的子类中;
(2)必须在Manifest.xml文件中的application中加一个name属性,值为该子类包名+文件名;
(3)在需要添加数据或取出数据的Activity使用getApplication()获得对象后再操作。
其他的 见 http://www.cnblogs.com/playing/archive/2011/03/10/1980053.html
阅读(988) | 评论(0) | 转发(0) |