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和Bundle实现从一个Activity带参数转换到另一个Activity的代码例子
if(et_username.getText().toString().equals("peidw") && et_password.getText().toString().equals("123456") ){
intent = new Intent();
Bundle bundle = new Bundle();
bundle.putString("USERNAME", et_username.getText().toString());
intent.putExtras(bundle);
intent.setClass(loginactive.this, informationactive.class);
startActivity(intent);
}else{
intent = new Intent();
intent.setClass(loginactive.this, errorpageactive.class);
//锟斤拷Activity
startActivity(intent);
}
在另一个Activity中取出Bundle 的参数
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
this.setContentView(R.layout.informationactive);
tv = (TextView)findViewById(R.id.first_page_info);
Bundle bundle = this.getIntent().getExtras();
String str=bundle.getString("USERNAME");
tv.setText(str);
button_back = (Button)findViewById(R.id.back);
button_back.setOnClickListener(new OnClickListener() {
public void onClick(View view) {
Intent intent = new Intent();
intent.setClass(informationactive.this,mainactive.class);
startActivity(intent);
}
});
}
分享到:
相关推荐
android Intent例子源码android Intent例子源码android Intent例子源码android Intent例子源码android Intent例子源码android Intent例子源码
在sendBroadcast,startActivity时,我们会用到Intent。 Intent可以携带一些数据,比如基本类型数据int、Boolean,或是String,或是序列化对象,Parcelable与Serializable。 Intent传递数据时,如果数据太大,可能...
在Android开发中,Intent是一个非常核心的组件,它充当了应用程序之间通信的桥梁。Intent用于启动活动(Activity)、服务(Service)或者广播接收器(BroadcastReceiver),也可以传递数据和执行其他操作。本资料...
Android 中使用 Intent 打开各种文件类型 Android 操作系统提供了 Intent 机制,允许应用程序之间进行交互和通信。Intent 是一个异步的消息机制,用于在应用程序之间请求或提供服务。通过使用 Intent,可以实现打开...
在Android开发中,Intent是一种非常重要的组件,它用于在应用程序的不同组件之间传递消息,实现活动(Activity)、服务(Service)、广播接收器(Broadcast Receiver)以及内容提供者(Content Provider)之间的交互...
在Android应用开发中,Intent Filter是一个至关重要的概念,它用于定义一个组件(如Activity或BroadcastReceiver)能够响应的Intent类型。Intent Filter就像一个过滤器,筛选出应用可以处理的特定操作,使得系统能够...
在Android应用开发中,Intent是一种强大的工具,用于在不同的组件之间进行通信,如启动Activity、启动Service或在组件间传递数据。"Android Intent传递对象"这个主题主要关注如何利用Intent来传递自定义对象,以便在...
《AndroDialysis:分析Android Intent在恶意软件检测中的有效性》这篇文章探讨了在Android系统中恶意软件数量随着其流行度上升而增加的问题。Android系统的开放性是导致这个问题的主要原因。恶意软件的目标是利用...
在Android开发中,Intent是一种非常重要的组件,它用于在应用程序的不同组件之间建立通信桥梁,尤其在窗口(Activity)之间的切换和数据传递上扮演着核心角色。Intent不仅可以启动新的Activity,还可以启动Service、...
在Android应用开发中,Intent是连接各个组件的重要桥梁,它用于启动Activity、Service,传递数据以及触发Broadcast Receiver。本文将深入解析Intent的生命周期,并结合源码进行详细讲解。 首先,理解Intent的基本...
Android Intent 使用总结 Android Intent 是 Android 组件之间通讯的核心机制,它负责对应用中一次操作的动作、动作涉及数据、附加数据进行描述。Android 则根据 Intent 的描述,找到对应的组件,将 Intent 传递给...
【Android Intent 启动和关闭Activity】 在Android应用程序开发中,Intent是连接各个组件(如Activity、Service等)的关键桥梁,主要用于启动和关闭Activity。Intent不仅能够启动一个新的Activity,还能在Activity...
### Android Intent 实例详解 #### 一、引言 在Android开发中,`Intent`扮演着极其重要的角色,它是应用程序内部以及不同应用程序之间通信的主要方式之一。通过`Intent`,开发者能够实现各种功能,比如打开网页、...
标题与描述中的关键词“android用于打开各种文件的intent”揭示了本文将探讨的主题:在Android平台上,如何使用Intent机制来启动应用程序以打开不同类型的文件。Intent是Android四大组件之一,它提供了一种方式来...
在Android应用开发中,Intent是连接应用程序组件之间通信的关键机制,它用于启动其他组件或传递数据。本篇文章将深入探讨Intent的基本概念、类型、构造方法以及如何在Android中有效地使用Intent。 Intent是一种意图...
3. 注册IntentFilter:为IntentFilter添加对应的ACTION,如"android.intent.action.TIME_TICK"、"android.intent.action.SCREEN_ON"和"android.intent.action.BATTERY_CHANGED"。 4. 不再需要时,记得在合适的位置...
android intent 介绍
在Android应用开发中,Intent是一种重要的组件间通信(IPC)机制,主要用于启动其他应用程序组件,如Activity、Service等。本文将深入探讨“Android Intent”在页面跳转和数据传递中的应用,结合“Chapter06_Intent_...