1.activity 之间跳转
显示跳转:在可以引用到那个类, 并且可以引用到那个类的字节码时可以使用. 一般用于在自己程序的内部.显式跳转不可以跳转到其它程序的页面中。
显示跳转举例:(跳转本应用)
Intent intent = new Intent(NewDianPuActivity.this, BaoBeiDetailActivity.class);
intent.putExtra("itemid", "123");
startActivity(intent);
overridePendingTransition(R.anim.tran_in, R.anim.tran_out);
隐式跳转:可以在当前程序跳转到另一个程序的页面.隐式跳转不需要引用到那个类,但是必须得知道那个界面的动作(action)和信息(category)。
Intent intent = new Intent();
intent.setAction("com.my.activity.sencond");
intent.addCategory("android.intent.category.DEFAULT");
//data和type不能共存,只有调用这个api,实现data和type的同时设置
intent.setDataAndType(Uri.parse("title:苹果"), "com.my.activity");
startActivity(intent);
2.1打开系统浏览器:
浏览器应用对应的Activity的<intent-filter>信息如下:
编码实现activity跳转:
Intent intent =new Intent();
intent.setAction("android.intent.action.VIEW");
intent.addCategory("android.intent.category.BROWSABLE");
intent.setData(Uri.parse("http://www.baidu.com"));
startActivity(intent);
2.2 打开系统短信发送页面:
短信应用对应的Activity的<intent-filter>信息如下:
编码实现activity跳转:
private void jumpToSMS(){
Intent intent =new Intent();
intent.setAction("android.intent.action.SENDTO");
intent.addCategory("android.intent.category.BROWSABLE");
intent.setData(Uri.parse("sms:10086"));
intent.putExtra("sms_body","查流量");
startActivity(intent);
}
3.使用Intent传递数据
Intent可传递的数据类型有: 八大基本类型,数组 ,ArrayList<String>,Bundle数据捆 , 序列化接口(javabean)
注意:Intent传递的数据过多可能会造成跳转速度极慢甚至黑屏一会,不要用Intent传递过多的数据,会影响到应用程序的使用