1.Intent对象
传输数据仅限简单数据和实现序列话的对象。
2.静态变量
将需要共享的对象或者数据声明为静态,可以传递任何类型的数据
3.剪切板
可以利用Android自带的剪切板功能传送数据
传递数据
Intent intent=new Intent(this,MainActivity.class);
ClipboardManager cliper=(ClipboardManager)getSystemServer
(Context.CLIPBOARD_SERVER);
cliper.setText("message");
startActivity(intent);
接收数据
ClipboardManager cliper=(ClipboardManager)getSystemServer
(Context.CLIPBOARD_SERVER);
String str=cliper.getText().toString();
4.全局对象
为每个应用程序定义一个全局的对象,该对象创建由系统负责,使用全局对象需要继承
android.app.Application类,可以在该类中定义任何方法。
package com.example.transmitdata;
import android.app.Application;
public class mAPP extends Application(){
public String str;
public Data data;
}
然后需要在AndroidManifest.xml文件中定义该类
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android ="http://schemas.andoid.com/apk/res/android"
package="com.example.transmitdata"
<application android:name=".mAPP "
......
/>
/>
可以在程序任意位置获取mAPP对象。
mAPP mapp=(mAPP)getApplicationContext();
面试官问:activity之间传递一个大的图片怎么传:
只能是用文件把图片存储,再在另一个activity中在获取;
5 基于Ipc的通信机制
context与service之间的传输,如Activity与Service之间的通信
6.基于外部存储的传输 ,File/Preference/Sqlite,如果要针对第三方应用需要Contentprovider