|
一.相关概念
(一)基本概念
Intent中文意思指”意图”,按照Android的设计理念,Android使用Intent来封装程序的”调用意图”,不管启动Activity、Service、BroadcastReceiver,Android都使用统一的Intent对象来封装这一”启动意图”。此外,Intent也是应用程序组件之间通信的重要媒介。在Android中指定的了具体是某个组件,那么就是显性意图;如果只是提出要求没有指定具体的某个人,在Android中即没有指定某个具体的组件,那么就是隐式意图;所有Intent页面跳转的方式又分为显示跳转和隐式跳转。
(二)Intent和三大组件
Android应用程序包含三种重要组件:Activity、Service、BroadcastReceiver,应用程序采用一致的方式启动它们,都是依靠Intent来进行启动的,Intent中封装了程序要启动的意图。
下面是Intent启动不同组件的部分方法:
Activity组件:
startActivity(Intent intent);startActivityForResult(Intent intent,int requestCode);
Service组件:
startService(Intent intent);bindService(Intent intent,ServiceConnection conn,int flags);
BroadcastReceiver组件:
sendBroadcast(Intent intent);sendOrderedBroadcast(Intent intent,String receiverPermission);
二.Intent的使用
这里的Intent使用,主要是使用它来执行页面的跳转功能。
如果Intent对象中包含了目标的class文件,那么就是显示意图的跳转;如果Intent没有包含目标的class文件,就是隐式意图跳转,隐式意图跳转就涉及到比较多的Intent对象的属性值的比较。
(一)Intent显式跳转页面
其中实现跳转的java代码非常简单:
Intent intent = new Intent(this, SecondActivity.class);
startActivity(intent);
其中具体实现是通过Intent的属性类Component来实现,不过Component类的方法都封装在Intent的方法里面了,不需要我们过多的去了解。
这如果要传递数据也可以通过Intent对象使用putExtra方法来传递数据。
这里的目标文件必须是要在AndroidManifest.xml里面注册。
(八)几个简单示例的代码
/**
* 跳转到指定的网址页面
*/
public void toView(View v) {
Intent intent = new Intent();
//设置Data数据
intent.setData(Uri.parse("http://www.baidu.com"));
//设置Action数据
intent.setAction(Intent.ACTION_VIEW);
//页面跳转
startActivity(intent);
}
/**
* 跳转到编辑联系人的信息
* 这里联系人的姓名是:1
*/
public void toEdit(View v) {
Intent intent = new Intent();
//设置Data数据
intent.setData(Uri.parse("content://com.android.contacts/contacts/1"));
//设置Action数据
intent.setAction(Intent.ACTION_EDIT);
//页面跳转
try {
startActivity(intent);
} catch (Exception e) {
Toast.makeText(this, "找不到该联系人!", Toast.LENGTH_SHORT).show();
}
}
/**
* 跳转到拨打电话的页面
* Data可以设置电话号码
*/
public void toDial(View v) {
Intent intent = new Intent();
//设置Data数据
intent.setData(Uri.parse("tel:13814236512"));
//设置Action数据
intent.setAction(Intent.ACTION_DIAL);
//页面跳转
startActivity(intent);
}
https://blog.csdn.net/wenzhi20102321/article/details/52876648
|
|