一、使用Intent的两种方法:
1、通过intent.putExtra
发送:
Intent intent = new Intent(MainActivity.this,OtherActivity.class);
intent.putExtra("name", "Nicole");
intent.putExtra("age", 25);
intent.putExtra("address", "Shenzhen");
接收:
Intent intent = getIntent();
String nameString = intent.getStringExtra("name");
int age = intent.getIntExtra("age",0);
String addressString = intent.getStringExtra("address");
2、通过bundle
发送:
Intent intent = new Intent(MainActivity.this,OtherActivity.class);
Bundle bundle = new Bundle();
bundle.putString("name", "Ben");
bundle.putInt("age", 28);
bundle.putString("address", "China");
intent.putExtras(bundle);
接收:
Intent intent = getIntent();
Bundle bundle = intent.getExtras();
String nameString = bundle.getString("name");
int age = bundle.getInt("age");
String addressString = bundle.getString("address");
二、通过隐式调用,url总包含的参数获取方式。(Mainifest进行注册)
发送:
Intent intent =new Intent(Intent.ACTION_VIEW, Uri.parse(mSchema));
getContext().startActivity(intent);
获取:
Intent i = getIntent();
Uri uri = i.getData();
if (uri !=null) {
String val = uri.getQueryParameter(name);
if (!TextUtils.isEmpty(val)) {
return Integer.parseInt(val);
}
}
问题:Intent在传递数据时是有大小限制的,这里官方并未详细说明,不过通过实验的方法可以测出数据应该被限制在1MB之内(1024KB)。
网友评论