没有合适的资源?快使用搜索试试~ 我知道了~
Android中提供了Intent机制来协助应用间的交互与通讯,或者采用更准确的说法 是,Intent不仅可用于应用程序之间,也可用于应用程序内部的Activity/Service之间的交互。 Intent这个英语单词的本意是“目的、意向”等,对于较少从事于大型平台开发工作的程序员来说,这可能 是一个不太容易理解的抽象概念,因为它与我们平常使用的简单函数/方法调用,或者上节中提到的通过库调用接口的方式不太一
资源推荐
资源详情
资源评论
AndroidIntent机制实例详解机制实例详解(Activity篇篇)
Android 中提供了 Intent 机制来协助应用间的交互与通讯,或者采用更准确的说法 是, Intent 不仅可用于应用程序之间,也可
用于应用程序内部的 Activity/Service 之间的交互。 Intent 这个英语单词的本意是“目的、意向”等,对于较少从事 于大型平台
开发工作的程序员来说, 这可能 是一个不太容易理解的抽象概念,因为它与我们平常使用的简单函数/ 方法调用,或者上节中
提到的通过库调用接口的方式不太一样。在 Intent 的使用中你看不到直接的函数调用,相对函数调用来说, Intent 是更为抽象
的概念,利用 Intent 所实现的软件复用的粒度是Activity/Service ,比函数复用更高一些,另外耦合也更为松散。
Android 中与Intent 相关的还有 Action/Category 及 Intent Filter 等,另外还有用于广播的 Intent ,这些元素掺杂在一起,导致
初学者不太容易迅速掌握 Intent 的用法。在讲解这些名词之前,我们先来从下面的例子中 感受一下 Intent 的一些基本用法,
看看它能做些什么,之后再来思考这种机制背后的意义。
理解 Intent 的关键之一是理解清楚Intent 的两种基本用法:一种是显式的 Intent ,即在构造 Intent 对象时就指定接收者,这种
方式与普通的函数调用类似, 只是复用的粒度有所差别;另一种是隐式的 Intent ,即Intent 的发送者在构造 Intent 对象时,并
不知道也不关心接收者是谁,这种方式与函数调用差别比较大,有利于降低发送者和接收 者之间的耦合。另外 Intent 除了发
送外,还可用于广播,这些都将在后文进行详细讲述。
下面的一小节我们来看看显式 Intent 的用法。
显式的 Intent(Explicit Intent)
同一个应用程序中的Activity切换
我们在前面的章节已经讨论过 Activity 的概念,通常一个应用程序中需要多个UI 屏幕,也就需要多个Activity 类,并且在这些
Activity 之间进行切换,这种切换就是通过 Intent 机制来实现的。
在同一个应用程序中切换 Activity时,我们通常都知道要启动的 Activity 具体是哪一个,因此常用显式的 Intent 来实现。下面
的例子用来实现一个非常简单的应用程序 SimpleIntentTest ,它包括两个UI 屏幕也就是两个 Activity——SimpleIntentTest类
和 TestActivity 类, SimpleIntentTest类有一个按钮用来启动 TestActivity。
程序的代码非常简单, SimpleIntentTest类的源代码如下:
package com.tope.samples.intent.simple;
import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
public class SimpleIntentTest extends Activity implements View.OnClickListener{
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super .onCreate(savedInstanceState);
setContentView(R.layout. main );
Button startBtn = (Button)findViewById(R.id. start_activity );
startBtn.setOnClickListener( this );
}
public void onClick(View v) {
switch (v.getId()) {
case R.id. start_activity :
Intent intent = new Intent( this , TestActivity. class );
startActivity(intent);
break ;
default :
break ;
}
}
}
上面的代码中,主要是为“ Start activity ” 按钮添加了 OnClickListener, 使得按钮被点击时执行 onClick() 方法, onClick() 方
法中则利用了 Intent 机制,来启动 TestActivity,关键的代码是下面这两行:
Intent intent = new Intent( this , TestActivity. class );
startActivity(intent);
这里定义 Intent 对象时所用到的是 Intent 的构造函数之一:
Intent ( Context packageContext, Class <?> cls)
两个参数分别指定 Context 和 Class ,由于将Class 设置为 TestActivity.class,这样便显式的指定了TestActivity 类作为 该
资源评论
weixin_38742532
- 粉丝: 41
- 资源: 909
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功