您的位置:首页 > 移动开发

使用Intent进行数据的传输(可以是两个App间)

2015-09-30 16:15 656 查看
一: 使用Intent进行Activity之间进行传输数据

1: 使用Intent进行Activity之间进行传输整形数据

代码: 其中一个activity:

Intent intent = new Intent();
//第一参数取的是这个应用程序的Context,生命周期是整个应用
//第二个参数是要跳转的页面的全路径
intent.setClassName( getApplicationContext(), "com.example.testofdialog.ReceiveActivity" );
//Bundle类用作携带数据,它类似于Map,用于存放key-value名值对形式的值
Bundle b = new Bundle();
b.putString("我是key", "这里就是你要传递的内容了");
//此处使用putExtras,接受方就响应的使用getExtra
intent.putExtras( b );
startActivity(intent);


另一个Activity:

//最后的参数一定要和发送方的相同,否则得到空值
String rString = getIntent().getExtras().getString("我是key");


2: 使用Intent进行Activity之间进行传输对象和数组,集合等数据

进行传输的数据只要是可进行序列化的对象,就可以进行下面方法的传输

代码: 其中一个activity:

Intent intent = new Intent();
List<String> dataList = new ArrayList<>(selectSet);
intent.putExtra(NotifyUtil.PARAM_2, (Serializable) dataList);
startActivity(intent);


另一个Activity:

tempDataList = (List<String>) intent.getSerializableExtra(NotifyUtil.PARAM_2);


进行传输的数据只要是可继承Parcelable类的对象,就可以进行下面方法的传输

代码: 其中一个activity:

Intent intent = new Intent();
Bundle bundle = new Bundle();
bundle.putString("action", businessShare.getAction());
bundle.putBoolean("share", true);
bundle.putParcelable("icon", bitmap);
intent.putExtra("bundle", bundle);
chatActivity.startActivity(intent);


另一个Activity:

Intent mIntent = this.getIntent();
Bundle bundle = mIntent.getBundleExtra("bundle");
String action = bundle.getString("action");
String params1 = bundle.getString("params1");
Bitmap bit = bundle.getParcelable("icon");


二: 使用Intent进行两个App之间进行传输数据

: 使用Intent进行两个App之间进行传输数据

代码: 其中App中的一个activity:


ComponentName componentName = new ComponentName(
"cn.example.main",   //要去启动的App的包名
"cn.example.main.SelectActivity");
//要去启动的App中的Activity的类名
// ComponentName : 参数说明
//组件名称,第一个参数是包名,也是主配置文件Manifest里设置好的包名
//第二个是类名,要带上包名

Intent intent = new Intent();
Bundle bundle = new Bundle();
intent.setComponent(componentName);
bundle.putString("params3", businessShare.getParams3());
bundle.putString("params4", summary);
bundle.putParcelable("icon", bitmap);
intent.putExtra("bundle", bundle);
chatActivity.startActivity(intent);


另一个App中的Activity:


在对应的Activity的文件清单中设置这个属性,才能进行数据的接收
android:exported="true"


//接收的方法
Intent mIntent = this.getIntent();
Bundle bundle = mIntent.getBundleExtra("bundle");
String action = bundle.getString("action");
String params1 = bundle.getString("params1");
Bitmap bit = bundle.getParcelable("icon");


2: 使用Intent进行两个App之间进行传输对象和数组,集合等数据

//跟上面的方法相同
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  app 代码 intent