android中的Intent的用法和原理属性
详解Android应用开发中Intent的作用及使用方法
详解Android应⽤开发中Intent的作⽤及使⽤⽅法Intent是⼀种运⾏时绑定(run-time binding)机制,它能在程序运⾏过程中连接两个不同的组件。
通过Intent,你的程序可以向Android表达某种请求或者意愿,Android会根据意愿的内容选择适当的组件来完成请求。
⽐如,有⼀个Activity希望打开⽹页浏览器查看某⼀⽹页的内容,那么这个Activity只需要发出WEB_SEARCH_ACTION给Android,Android就会根据Intent的请求内容,查询各组件注册时声明的IntentFilter,找到⽹页浏览器的Activity来浏览⽹页。
Android的三个基本组件——Activity,Service和Broadcast Receiver——都是通过Intent机制激活的,不同类型的组件有不同的传递Intent⽅式:要激活⼀个新的Activity,或者让⼀个现有的Activity做新的操作,可以通过调⽤Context.startActivity()或者Activity.startActivityForResult()⽅法。
要启动⼀个新的Service,或者向⼀个已有的Service传递新的指令,调⽤Context.startService()⽅法或者调⽤Context.bindService()⽅法将调⽤此⽅法的上下⽂对象与Service绑定。
Context.sendBroadcast()、Context.sendOrderBroadcast()、Context.sendStickBroadcast()这三个⽅法可以发送Broadcast Intent。
发送之后,所有已注册的并且拥有与之相匹配IntentFilter的BroadcastReceiver就会被激活。
Intent⼀旦发出,Android都会准确找到相匹配的⼀个或多个Activity,Service或者BroadcastReceiver作响应。
Android+Intent机制实例详解
Android Intent机制实例详解(1)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机制来实现的。
intent在android中用法
intent在android中用法在Android中使用Intent的用法在Android开发中,Intent(意图)是一个非常重要的概念。
它可以用于应用程序组件之间的通信,包括Activity、Service、BroadcastReceiver 和ContentProvider。
Intent可以用于启动Activity、启动Service、发送广播以及在应用程序组件之间传递数据。
本篇文章将详细介绍在Android中使用Intent的用法,包括显式Intent和隐式Intent的使用、传递数据以及启动其他应用程序等。
一、显式Intent和隐式Intent的使用在Android中,可以使用显式Intent和隐式Intent来启动组件。
1.显式Intent的使用显式Intent指定了要启动的组件的类名。
下面是一个使用显式Intent启动Activity的示例代码:Intent intent = new Intent(MainActivity.this, SecondActivity.class); startActivity(intent);上述代码中,Intent的构造函数接收两个参数,第一个参数是当前Activity 的上下文对象,第二个参数是要启动的Activity的类名。
然后使用startActivity()方法启动Activity。
2.隐式Intent的使用隐式Intent是不指定目标组件的类名,而是通过设置Intent的Action、Category和Data等属性来匹配目标组件。
下面是一个使用隐式Intent 启动Activity的示例代码:Intent intent = new Intent();intent.setAction("com.example.action.START_SECOND_ACTIVITY"); intent.addCategory("android.intent.category.DEFAULT"); startActivity(intent);上述代码中,首先创建了一个空的Intent对象,然后使用setAction()方法设置Action,使用addCategory()方法设置Category。
Intent的一些用法
Intent的一些用法(不断更新)文章分类:移动开发Intent用法实例1.无参数Activity跳转Java代码1.Intent it = new Intent(Activity.Main.this, Activity2.class);2.startActivity(it);2.向下一个Activity传递数据(使用Bundle和Intent.putExtras)Java代码1.Intent it = new Intent(Activity.Main.this, Activity2.class);2.Bundle bundle=new Bundle();3.bundle.putString("name", "This is from MainActivity!");4.it.putExtras(bundle); // it.putExtra(“test”,"shuju”);5.startActivity(it); // startActivityForResult(it,REQUEST_CODE);对于数据的获取可以采用:Java代码1.Bundle bundle=getIntent().getExtras();2.String name=bundle.getString("name");3.向上一个Activity返回结果(使用setResult,针对startActivityForResult(it,REQUEST_CODE)启动的Activity)Java代码1.Intent intent=getIntent();2. Bundle bundle2=new Bundle();3. bundle2.putString("name", "This is from ShowMsg!");4. intent.putExtras(bundle2);5. setResult(RESULT_OK, intent);4.回调上一个Activity的结果处理函数(onActivityResult)Java代码1.@Override2. protected void onActivityResult(int requestCode, int resultCode, Intent data) {3. // TODO Auto-generated method stub4. super.onActivityResult(requestCode, resultCode, data);5. if (requestCode==REQUEST_CODE){6. if(resultCode==RESULT_CANCELED)7. setTitle("cancle");8. else if (resultCode==RESULT_OK) {9. String temp=null;10. Bundle bundle=data.getExtras();11. if(bundle!=null) temp=bundle.getString("name");12. setTitle(temp);13. }14. }15. }下面是转载来的其他的一些Intent用法实例(转自javaeye)显示网页Java代码1.1. Uri uri = Uri.parse("");2.2. Intent it = new Intent(Intent.ACTION_VIEW, uri);3.3. startActivity(it);显示地图Java代码1.1. Uri uri = Uri.parse("geo:38.899533,-77.036476");2.2. Intent it = new Intent(Intent.ACTION_VIEW, uri);3.3. startActivity(it);4.4. //其他 geo URI 範例5.5. //geo:latitude,longitude6.6. //geo:latitude,longitude?z=zoom7.7. //geo:0,0?q=my+street+address8.8. //geo:0,0?q=business+near+city9.9. //google.streetview:cbll=lat,lng&cbp=1,yaw,,pitch,zoom&mz=mapZoom路径规划Java代码1.1. Uri uri = Uri.parse("/maps?f=d&saddr=startLat%20startLng&daddr=endLat%20endLng&hl=en");2.2. Intent it = new Intent(Intent.ACTION_VIEW, uri);3.3. startActivity(it);4.4. //where startLat, startLng, endLat, endLng are a long with 6 decimals like: 50.123456打电话Java代码1.1. //叫出拨号程序2.2. Uri uri = Uri.parse("tel:0800000123");3.3. Intent it = new Intent(Intent.ACTION_DIAL, uri);4.4. startActivity(it);5.1. //直接打电话出去6.2. Uri uri = Uri.parse("tel:0800000123");7.3. Intent it = new Intent(Intent.ACTION_CALL, uri);8.4. startActivity(it);9.5. //用這個,要在 AndroidManifest.xml 中,加上10. 6. //<uses-permission id="android.permission.CALL_PHONE" />传送SMS/MMSJava代码1.1. //调用短信程序2.2. Intent it = new Intent(Intent.ACTION_VIEW, uri);3.3. it.putExtra("sms_body", "The SMS text");4.4. it.setType("vnd.android-dir/mms-sms");5.5. startActivity(it);6.1. //传送消息7.2. Uri uri = Uri.parse("smsto://0800000123");8.3. Intent it = new Intent(Intent.ACTION_SENDTO, uri);9.4. it.putExtra("sms_body", "The SMS text");10. 5. startActivity(it);11. 1. //传送 MMS12. 2. Uri uri = Uri.parse("content://media/external/images/media/23");13. 3. Intent it = new Intent(Intent.ACTION_SEND);14. 4. it.putExtra("sms_body", "some text");15. 5. it.putExtra(Intent.EXTRA_STREAM, uri);16. 6. it.setType("image/png");17. 7. startActivity(it);传送 EmailJava代码1.1. Uri uri = Uri.parse("mailto:xxx@");2.2. Intent it = new Intent(Intent.ACTION_SENDTO, uri);3.3. startActivity(it);4.5.6.1. Intent it = new Intent(Intent.ACTION_SEND);7.2. it.putExtra(Intent.EXTRA_EMAIL, "me@");8.3. it.putExtra(Intent.EXTRA_TEXT, "The email body text");9.4. it.setType("text/plain");10. 5. startActivity(Intent.createChooser(it, "Choose Email Client"));11.12.13. 1. Intent it=new Intent(Intent.ACTION_SEND);14. 2. String[] tos={"me@"};15. 3. String[] ccs={"you@"};16. 4. it.putExtra(Intent.EXTRA_EMAIL, tos);17. 5. it.putExtra(Intent.EXTRA_CC, ccs);18. 6. it.putExtra(Intent.EXTRA_TEXT, "The email body text");19. 7. it.putExtra(Intent.EXTRA_SUBJECT, "The email subject text");20. 8. it.setType("message/rfc822");21. 9. startActivity(Intent.createChooser(it, "Choose Email Client"));传送附件Java代码1.Intent it = new Intent(Intent.ACTION_SEND);2. it.putExtra(Intent.EXTRA_SUBJECT, "The email subject text");3. it.putExtra(Intent.EXTRA_STREAM, "file:///sdcard/mysong.mp3");4. sendIntent.setType("audio/mp3");5. startActivity(Intent.createChooser(it, "Choose Email Client"));播放多媒体Java代码1.Uri uri = Uri.parse("file:///sdcard/song.mp3");2. Intent it = new Intent(Intent.ACTION_VIEW, uri);3. it.setType("audio/mp3");4. startActivity(it);5. Uri uri = Uri.withAppendedPath(MediaStore.Audio.Media.INTERNAL_CONTENT_URI, "1");6. Intent it = new Intent(Intent.ACTION_VIEW, uri);7. startActivity(it);Market 相关//寻找某个应用Java代码1.Uri uri = Uri.parse("market://search?q=pname:pkg_name");2. Intent it = new Intent(Intent.ACTION_VIEW, uri);3. startActivity(it);//where pkg_name is the full package path for an applicationJava代码1.显示某个应用的相关信息2. Uri uri = Uri.parse("market://details?id=app_id");3. Intent it = new Intent(Intent.ACTION_VIEW, uri);4. startActivity(it);5. //where app_id is the application ID, find the ID6. //by clicking on your application on Market home7. //page, and notice the ID from the address bar发起一个应用程序ComponentName 两个参数一个是包名一个是包下的主类Java代码1.final Intent intent = new Intent(Intent.ACTION_MAIN, null);2.intent.addCategory(Intent.CATEGORY_LAUNCHER);3.final ComponentName cn = new ComponentName("com.android.settings","com.android.settings.fuelgauge.PowerUsageSummary");4.intent.setComponent(cn);5.intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);6.startActivity( intent);Uninstall 应用程序Java代码1.Uri uri = Uri.fromParts("package", strPackageName, null);2. Intent it = new Intent(Intent.ACTION_DELETE, uri);3. startActivity(it);返回桌面Java代码1.Intent unMyIntent = new Intent(Intent.ACTION_MAIN);2. unMyIntent.addCategory(Intent.CATEGORY_HOME);3. startActivity(unMyIntent);发邮件Java代码1.Uri uri = Uri.parse("mailto:fengsheng.studio@");2.Intent it = new Intent(Intent.ACTION_SENDTO, uri);发送文件Java代码1.Intent intent = new Intent();2.intent.setAction(Intent.ACTION_SEND);3.intent.setType(mimeType);4.intent.putExtra(Intent.EXTRA_STREAM, uri);5. startActivity(intent);6.7.以上有两个变量需要说明:8.1. mimeType: 如果是图片,则为"image/*",如果是音频,则为"audio/*",如果是视频,则为"video/*"9.2. uri:如果是直接读取到文件路径并发送,则为Uri.fromFile(new File(filePath));10. 如果是从数据库中查循出来的uri,则直接传入即可.发起市场程序Java代码1.Intent intent = new Intent(Intent.ACTION_VIEW,2. Uri.parse("market://details?id=pname:org.rabold.android.puzzleblox"));3. //Uri.parse("market://search?q=pname:org.rabold.android.puzzleblox"));4. startActivity(intent);。
Intent类型
Intent类型intent是⼀个消息传递对象,你可以使⽤它从其他应⽤组件请求操作。
intent的常⽤操作。
启动Activity activity已知是⼀个android的⼀个界⾯,通过调⽤startActivity(),我们可以启动⼀个新的activity,并且实现界⾯的跳转。
并且可以传递⼀些简单的数据。
如果我们希望能够从⼀个activity获取result的时候,我们可以调⽤startActivityForResult().这样,我们就可以启动⼀个新的activity,并且当这个新的activity执⾏完成后,我们可以得到⼀些返回的数据。
启动服务 service是⼀个不会使⽤⽤户界⾯,也就是在后台运⾏的⼀个线程或者进程。
将intent传递给startService(),我们可以启动⼀个服务完成⼀些操作,如播放⾳乐等。
intent的主要作⽤是⽤来设置要启动的服务过程,并且可以传递⼀些简单的数据。
传递⼴播 ⼴播式android的⼀个相当重要的组件,⼴播是任何应⽤都可以接受的消息。
系统针对系统事件传递各种⼴播。
通过intent传递给sendBroadcast(),sendOrderBroadcast()或者sendStickyBroadcast().,这样可以将⼴播传递给其他应⽤。
intent的使⽤分为两种类型 显式使⽤intent:明确指定activity来启动组件。
这样使⽤⽐较简单,但是有明确的要求就是,我们必须在我们需要明确的知道要启动的activity的类名。
创建显式intent启动activity和service,系统将⽴即启动intent对象中指定的应⽤组件。
代码:Intent intent=new Intent();intent.setClass(MainActivity.this, DisplayMessageActivity.class);EditText edit=(EditText)findViewById(R.id.edit1);String message=edit.getText().toString();intent.putExtra("message", message);startActivity(intent);显式使⽤intent 隐式使⽤intent:不特别指定要启动相应的activity的类名,⽽只要声明要执⾏的常规操作,从⽽允许其他应⽤中的组件来处理它。
intent原理及使用实验报告
intent原理及使用实验报告摘要:本实验报告主要介绍了intent的原理及其在Android开发中的使用。
通过实验,我们验证了intent在Android应用程序中的传递数据和启动其他组件的功能。
本文分为引言、实验设计、实验过程、实验结果、实验分析和结论六个部分。
1. 引言Intent是Android开发中的一个重要概念,用于在不同组件之间传递数据和启动其他组件。
Intent可以用来启动Activity、Service 和BroadcastReceiver等组件,也可以用来传递数据。
在Android 开发中,Intent被广泛使用,可以实现应用程序之间的交互和数据共享。
2. 实验设计本次实验的目的是验证intent在Android应用程序中的传递数据和启动其他组件的功能。
实验设计如下:(1)创建一个包含两个Activity的Android应用程序;(2)在第一个Activity中,通过Intent传递数据给第二个Activity;(3)在第二个Activity中,接收并显示传递的数据;(4)在第二个Activity中,通过Intent启动第一个Activity。
3. 实验过程(1)创建Android项目,并在AndroidManifest.xml文件中添加两个Activity的声明;(2)在第一个Activity中,创建一个按钮,点击按钮时触发事件;(3)在按钮的点击事件中,创建一个Intent对象,并通过putExtra()方法传递数据;(4)使用startActivity()方法启动第二个Activity;(5)在第二个Activity中,使用getIntent()方法获取传递的Intent对象,并通过getStringExtra()方法获取传递的数据;(6)在第二个Activity中,创建一个按钮,点击按钮时触发事件;(7)在按钮的点击事件中,创建一个Intent对象,并使用startActivity()方法启动第一个Activity。
安卓intent用法
安卓intent用法Android中的Intent是一种消息传递机制,用于在应用程序中传递信息或执行操作。
Intent可以用于在不同的组件之间启动服务、启动活动或者传递数据。
以下是一些示例用法:1. 启动应用程序组件可以使用Intent启动活动、服务或广播接收器。
例如,启动另一个活动可以使用以下代码:```Intent intent = new Intent(this, AnotherActivity.class); startActivity(intent);```其中,第一个参数是上下文,第二个参数是要启动的活动类。
2. 传递数据可以使用Intent传递数据,例如启动另一个活动,并且传递一些数据。
以下是传递字符串和整数的示例代码:```Intent intent = new Intent(this, AnotherActivity.class); intent.putExtra("message", "Hello World");intent.putExtra("number", 123);startActivity(intent);```在另一个活动中,可以使用以下代码获取所传递的数据:```Intent intent = getIntent();String message = intent.getStringExtra("message");int number = intent.getIntExtra("number", 0);```其中,getStringExtra()和getIntExtra()方法用于获取传递的字符串和整数。
3. 执行操作可以使用Intent执行某些操作,例如发送电子邮件或拨打电话。
以下是启动发送电子邮件的示例代码:```Intent intent = new Intent(Intent.ACTION_SEND);intent.setType("text/plain");intent.putExtra(Intent.EXTRA_EMAIL,"***************"); intent.putExtra(Intent.EXTRA_SUBJECT, "邮件的主题");intent.putExtra(Intent.EXTRA_TEXT, "邮件的正文");startActivity(Intent.createChooser(intent, "选择一个邮箱客户端"));```其中,setType()方法设置发送邮件的类型为纯文本,putExtra()方法设置电子邮件的相关信息,createChooser()方法创建一个选择器来选择邮箱客户端。
intent在android中的用法
intent在android中的用法在Android开发中,Intent是一种用于在应用程序组件之间传递信息的消息对象。
它可以用于启动活动(Activity)、服务(Service)或发送广播(Broadcast)。
以下是Intent在Android 中的几种常见用法:1.启动活动(Starting Activities):使用Intent启动一个新的活动。
例如,从当前活动跳转到另一个活动。
2.传递数据给活动(Passing Data to Activities):通过Intent的putExtra()方法,可以传递基本数据类型、字符串、序列化对象等。
3.返回数据给调用活动(Returning Data to the Calling Activity):使用startActivityForResult()启动新活动,并在新活动中使用setResult()设置返回数据。
4.启动服务(Starting Services):使用Intent启动服务,服务可以在后台执行长时间运行的操作。
5.发送广播(Sending Broadcasts):使用Intent发送广播,所有注册了相应广播接收器的组件都可以接收到广播。
6.隐式意图(Implicit Intents):不指定具体的组件类,而是声明要执行的操作。
系统会选择能够处理该操作的组件。
7.PendingIntent:PendingIntent是一种特殊的Intent,它允许你在稍后的某个时间点执行一个操作,或者由其他应用程序执行。
常用于通知、闹钟等场景。
8.使用Intent过滤器(Intent Filters):在AndroidManifest.xml中,使用<intent-filter>标签来声明活动、服务等可以响应哪些类型的Intent。
这对于定义应用程序的主入口点或响应系统事件非常有用。
Android广播大全IntentAction事件详解
Android⼴播⼤全IntentAction事件详解具体内容如下所⽰:Intent.ACTION_AIRPLANE_MODE_CHANGED;//关闭或打开飞⾏模式时的⼴播Intent.ACTION_BATTERY_CHANGED;//充电状态,或者电池的电量发⽣变化//电池的充电状态、电荷级别改变,不能通过组建声明接收这个⼴播,只有通过Context.registerReceiver()注册Intent.ACTION_BATTERY_LOW;//表⽰电池电量低Intent.ACTION_BATTERY_OKAY;//表⽰电池电量充⾜,即从电池电量低变化到饱满时会发出⼴播Intent.ACTION_BOOT_COMPLETED;//在系统启动完成后,这个动作被⼴播⼀次(只有⼀次)。
Intent.ACTION_CAMERA_BUTTON;//按下照相时的拍照按键(硬件按键)时发出的⼴播Intent.ACTION_CLOSE_SYSTEM_DIALOGS;//当屏幕超时进⾏锁屏时,当⽤户按下电源按钮,长按或短按(不管有没跳出话框),进⾏锁屏时,android系统都会⼴播此Action消息Intent.ACTION_CONFIGURATION_CHANGED;//设备当前设置被改变时发出的⼴播(包括的改变:界⾯语⾔,设备⽅向,等,请参考Configuration.java)Intent.ACTION_DATE_CHANGED;//设备⽇期发⽣改变时会发出此⼴播Intent.ACTION_DEVICE_STORAGE_LOW;//设备内存不⾜时发出的⼴播,此⼴播只能由系统使⽤,其它APP不可⽤?Intent.ACTION_DEVICE_STORAGE_OK;//设备内存从不⾜到充⾜时发出的⼴播,此⼴播只能由系统使⽤,其它APP不可⽤?Intent.ACTION_DOCK_EVENT;////发出此⼴播的地⽅frameworks\base\services\java\com\android\server\DockObserver.javaIntent.ACTION_EXTERNAL_APPLICATIONS_AVAILABLE;////移动APP完成之后,发出的⼴播(移动是指:APP2SD)Intent.ACTION_EXTERNAL_APPLICATIONS_UNAVAILABLE;//正在移动APP时,发出的⼴播(移动是指:APP2SD)Intent.ACTION_GTALK_SERVICE_CONNECTED;//Gtalk已建⽴连接时发出的⼴播Intent.ACTION_GTALK_SERVICE_DISCONNECTED;//Gtalk已断开连接时发出的⼴播Intent.ACTION_HEADSET_PLUG;//在⽿机⼝上插⼊⽿机时发出的⼴播Intent.ACTION_INPUT_METHOD_CHANGED;//改变输⼊法时发出的⼴播Intent.ACTION_LOCALE_CHANGED;//设备当前区域设置已更改时发出的⼴播Intent.ACTION_MANAGE_PACKAGE_STORAGE;////未正确移除SD卡(正确移除SD卡的⽅法:设置--SD卡和设备内存--卸载SD卡),但已把SD卡取出来时发出的⼴播//⼴播:扩展介质(扩展卡)已经从 SD 卡插槽拔出,但是挂载点 (mount point) 还没解除 (unmount)Intent.ACTION_MEDIA_BUTTON;//按下"Media Button" 按键时发出的⼴播,假如有"Media Button"按键的话(硬件按键)Intent.ACTION_MEDIA_CHECKING;//插⼊外部储存装置,⽐如SD卡时,系统会检验SD卡,此时发出的⼴播?Intent.ACTION_MEDIA_EJECT;//已拔掉外部⼤容量储存设备发出的⼴播(⽐如SD卡,或移动硬盘),不管有没有正确卸载都会发出此⼴播?//⼴播:⽤户想要移除扩展介质(拔掉扩展卡)。
intent的用法
intent的用法Intent的用法Intent是Android开发中常用的一个类,用于在不同组件之间传递数据和触发操作。
它可以用于在应用内的不同Activity之间进行跳转,也可以用于调用其他应用的组件。
下面将详细介绍Intent的一些常见用法。
创建Intent对象使用Intent类创建一个Intent对象,可以通过构造函数传递参数或使用静态方法创建。
•通过构造函数传递参数:Intent intent = new Intent(context, );其中,context表示当前上下文,TargetActivity表示需要跳转到的目标Activity。
•使用静态方法创建:Intent intent = new Intent();(context, );指定ActionIntent可以使用Action来指定要执行的操作。
Android提供了一些内置的Action,也可以自定义Action。
以下是一些常见的Action 用法:•打开浏览器:Intent intent = new Intent(_VIEW, ("startActivity(intent);•拨打电话:Intent intent = new Intent(_DIAL, ("tel:")); startActivity(intent);•发送短信:Intent intent = new Intent(_SENDTO, ("smsto:")); ("sms_body", "Hello World");startActivity(intent);传递数据Intent可以在不同组件之间传递数据,可以使用putExtra()方法来传递各种类型的数据。
•传递基本类型数据:Intent intent = new Intent(context, );("key", value);startActivity(intent);其中,key表示数据的键,value表示数据的值。
intent在android中的用法 -回复
intent在android中的用法-回复在Android开发中,Intent是一个关键的概念,它用于在不同的组件之间进行通信,包括Activity、Service、BroadcastReceiver等。
在本文中,我们将一步一步回答关于Intent在Android中的用法。
第一步:理解Intent的概念Intent是Android中的一个对象,它用于在不同的组件之间传递消息。
可以将Intent看作是一种“意图”,它描述了一个动作,例如启动或停止一个组件,发送或接收一条广播等。
通过Intent,我们可以启动另一个Activity并传递一些数据,启动一个Service执行后台任务,发送一个广播给其他组件等。
第二步:创建和使用Intent要创建一个Intent对象,可以使用以下代码:javaIntent intent = new Intent(context, targetActivity.class);其中,context是当前活动的上下文,targetActivity是我们想要启动的目标Activity。
创建Intent时,可以指定启动目标Activity所需的参数。
要启动另一个Activity,可以使用以下代码:javastartActivity(intent);这将启动目标Activity,并将控制权转移到目标Activity。
第三步:传递数据通过Intent,我们可以在不同的组件之间传递数据。
要传递数据,可以使用以下代码:javaintent.putExtra(key, value);其中,key是一个字符串键,用于标识数据,value是要传递的数据。
在目标Activity中,可以使用以下代码获取传递的数据:javagetIntent().getXXXExtra(key);其中,XXX可以是不同的数据类型,例如getIntExtra()、getStringExtra()等,根据传递的数据类型选择相应的方法。
Intent 详解
Intent 详解概念:Intent是执行某操作的一个抽象描述概述:Intent包含四个方面的内容:Action ,data Catagories,extrasAction要执行的动作(action)的一个简要描述. 通过setAction()方法或在清单文件AndroidManifest.xml中设置。
默认为:DEFAULT。
标准的Activity Actions:这些Action是被通过startActivity (启动),其中最常用的连个∙ACTION_MAIN:Android Application的入口,每个Android应用必须且只能包含一个此类型的Action声明。
∙ACTION_VIEW:系统根据不同的Data类型,通过已注册的对应Application显示数据。
∙ACTION_ATTACH_DATA:表明某些数据可以被附加到其他地方,例如,照片可以附加到联系人中,这主要由接受着决定数据被附加到那里,而不是由Intent决定最终目的地。
∙ACTION_EDIT:系统根据不同的Data类型,通过已注册的对应Application编辑示数据∙ACTION_PICK:从数据中得到相应的数据项∙ACTION_CHOOSER:在程序执行前,显示多个可以选择的Activity,供用户选择∙ACTION_GET_CONTENT:返回用户指定的数据类型(与ACTION_PICK不同的是,这里只是指定用户想要的数据类型,而不是数据的存储URI或者其他用户可以得到数据的路径)∙ACTION_DIAL:打开系统默认的拨号程序,如果Data中设置了电话号码,则自动在拨号程序中输入此号码。
∙ACTION_CALL:直接呼叫Data中所带的号码。
∙ACTION_SEND:由用户指定发送方式进行数据发送操作。
∙ACTION_SENDTO:系统根据不同的Data类型,通过已注册的对应Application进行数据发送操作。
Android中的intent
Android中的intent在你开始与拨号盘交互之前,你需要你理解你要使用的代码类型。
Andriod使用Intent在应用程序中定义工作。
一旦你掌握了Intents的使用,一个全新的应用程序开发世界将会想你敞开。
本节定义了Intent是什么和如何使用它。
一个Intent是Android从一个Activity(活动)传递信息到另外一个活动的方法。
你可以认为一个Intent是一个活动间交换的信息。
例如,假定你有一个活动需要来打开一个网页浏览器并且在Android设备上显示一个页面。
你的活动应当发送一个“在网页浏览器中打开某页的Intent(意图)”,就像一个WEB_SEARCH_ACTION的Intent,一个Android Intent解答器。
Intent解答器从语法上分析一个活动的列表并且选择最匹配你的Intent的一个。
那就是,网页浏览器的活动。
Intent解答器然后传递你的网页到浏览器中并且启动网页浏览器活动。
Intents被分成两个主要目录●Activity Action Intents(活动动作意图)Intents用来呼叫应用程序以外的活动。
只有一个活动可以处理Intent。
例如,对于网页浏览器,你需要打开网页浏览器活动来显示一个页面。
●Broadcast Intents(广播意图)Intents被送出到多个活动来处理。
一个被Android发出的广播意图的例子就是,当前电池的电量。
任何活动处理这个意图并适时的反应。
——例如,如果电池电量低到一定程度,取消一个活动。
表格7-1列出并且描述了通用的,可以使用活动动作意图。
正如你注意到的一样,大多数情况下,从Intent名字可以看出这个Intent是做什么的。
Activity Action Intent MessageADD_SHORTCUT_ACTION增加一个功能快捷菜单到Android的主屏ALL_APPS_ACTION列出设备上可用的所有应用程序ANSWER_ACTION接电话BUG_REPORT_ACTION打开调试报告活动CALL_ACTION呼叫一个提供的位置DELETE_ACTION删除定义的数据DIAL_ACTION打开拨号活动并且拨打一个定义好的号码EDIT_ACTION对有权使用的数据提供编辑拨打一个紧急号码EMERGENCY_DIAL_ACTIONFACTORY_TEST_ACTION回复工厂测试设定GET_CONTENT_ACTION选择并返回定义的数据INSERT_ACTION插入一个空的条目MAIN_ACTION建立一个活动开始点PICK_ACTION挑选一个条目并且返回一个选择PICK_ACTIVITY_ACTION挑选一个特定的活动(返回一个类)RUN_ACTION执行特定的数据SEARCH_ACTION在系统上启动搜索SEND_ACTION发送数据给没有定义的接收者SENDTO_ACTION发送数据到指定的接收者SETTINGS_ACTION启动系统设定SYNC_ACTION和外部的源同步手机VIEW_ACTION(DEFAULT_ACTION)打开一个视图WALLPAPER_SETTINGS_ACTION显示修改Android墙纸的设定WEB_SEARCH_ACTION打开谷歌搜索,或者其它定义过的网页注意本章中的应用程序会用到列在表7-1中的Intents:CALL_ACTION和DIAL_ACTION。
intent总结
Intent的构造函数公共构造函数:1、Intent() 空构造函数2、Intent(Intent o) 拷贝构造函数3、Intent(String action) 指定action类型的构造函数4、Intent(String action, Uri uri) 指定Action类型和Uri的构造函数,URI主要是结合程序之间的数据共享ContentProvider5、Intent(Context packageContext, Class<?> cls) 传入组件的构造函数,也就是上文提到的6、Intent(String action, Uri uri, Context packageContext, Class<?> cls) 前两种结合体Intent有六种构造函数,3、4、5是最常用的,并不是其他没用!Intent(String action, Uri uri) 的action就是对应在AndroidMainfest.xml中的action 节点的name属性值。
在Intent类中定义了很多的Action和Category常量。
Intent对象组件名称:为一个ComponentName 对象. 它是目标组件的完整名(例如"com.example.project.app.FreneticActivity")和应用程序manifest文件设定的包名(例如"com.example.project")的组合。
组件名称是使用setComponent(),setClass(),或setClassName()来设定Action:个字符串, 为请求的动作命名你也可以定义自己的action字符串用来启动你的应用程序. 自定义的action应该包含应用程序的包名.例如"com.example.project.SHOW_COLOR".Data:需要操作的数据的URI和它的MIME(多用途互联网邮件扩展,Multipurpose Internet Mail Extensions)类型. 例如, 如果action为ACTION_EDIT, 那么Data将包含待编辑的数据URI. 如果action为ACTION_CALL, Data将为tel:电话号码的URI. 如果action为ACTION_VIEW, 则Data 为http:网络地址的URI.Category:一个字符串,包含了关于处理该intent的组件的种类的信息. 一个intent对象可以有任意个category。
Android中Intent传递对象的3种方式详解
Android中Intent传递对象的3种⽅式详解前⾔相信Intent的⽤法⼤家已经⽐较熟悉了,Intent可以⽤来启动Activity,Service等等,同时我们也可以通过Intent来进⾏传递数据,当我们使⽤Intent在Activity 间传递信息时发现putExtra()⽅法并不⽀持⾃定义对象的传输,下⾯就来介绍三种解决⽅式。
⼀、Serializable ⽅式这是最简单的⼀种⽅法,因为我们要做的就是让我们⾃定义的对象实现 Serializable 这个空接⼝。
public class Person implements Serializable{private String mName;private String mAddress;public String getName() {return mName;}public void setName(String name) {mName = name;}public String getAddress() {return mAddress;}public void setAddress(String address) {mAddress = address;}}这个时候,就已经可以使⽤Intent 的putExtra() ⽅法传递这个⾃定义对象了,在Activity中这样使⽤Person person = new Person();person.setName("Hwaphon");person.setAddress("Anhui");Intent intent = new Intent(MainActivity.this,SecondActivity.class);intent.putExtra("person",person);startActivity(intent);finish();在Activity中接收数据Intent intent = getIntent();Person person = (Person) intent.getSerializableExtra("person");使⽤Serializable⽅法虽然⼗分简单,但是效率却不容乐观,因为它会把整个对象序列化,开销⼗分⼤,为了追求效率,我们不得不使⽤另⼀种⽅法,也就是Parcelable ⽅法。
Intent七大属性
Intent七⼤属性⼀、Intent的作⽤是什么?1、Intent ⽤于封装程序的”调⽤意图“。
两个Activity之间,可以把需要交换的数据封装成Bundle对象,然后使⽤Intent携带Bundle对象,实现两个Activity之间的数据交换;2、Intent还是各种应⽤程序组件之间通信的重要媒介。
不管想启动⼀个Service、Acitivity还是BroadcastReceiver,Android均使⽤统⼀的Intent对象来封装这种”启动意图“。
很明显使⽤Intent提供了⼀致的编程模型;3、Intent还有⼀个好处,如果应⽤程序只是想启动具有某种特征的组件,并不想和某个具体的组件耦合,则可以通过在intent-filter中配置相应的属性进⾏处理,与stucts2中的MVC框架思路类似。
//①.第⼀种⽅式:开启另⼀个Activity1. //Intent intent=new Intent(this,SecondActivity.class);2. Intent intent=new Intent();//②.第⼆种⽅式:使⽤ComponentName//使⽤ComponentName组件名来开启另⼀个Activity1. ComponentName component=new ComponentName(this, SecondActivity.class);//第⼆个参数是包含包名,类名的⼀个完整字符串1. ComponentName component=new ComponentName(this, "com.qianfeng.day06_intentattribute01.SecondActivity");//第⼀个参数是单纯的包名;第⼆个参数是包含包名,类名的⼀个完整字符串1. ComponentName component=new ComponentName("com.qianfeng.day06_intentattribute01", "com.qianfeng.day06_intentattribute01.SecondActivity");2. intent.setComponent(component);//③.第三种⽅式:setClass也可以实现跳转1. intent.setClass(this, SecondActivity.class);//④.第四种⽅式:setClassName跳转⽅式1. intent.setClassName(this, "com.qianfeng.day06_intentattribute01.SecondActivity");//⑤.第五种:通过隐式意图开启另⼀个Activity1. intent.setAction("ergouzisimida");//其实系统默认就有这句话,默认省略了这句话1. intent.addCategory("android.intent.category.DEFAULT");1. startActivity(intent);⼆、Intent对象的七个属性<1>ComponentName属性:1、指定了ComponentName属性的Intent已经明确了它将要启动哪个组件,因此这种Intent被称为显式Intent,没有指定ComponentName属性的Intent被称为隐式Intent。
Intent的作用和表现形式简单介绍
Intent的作⽤和表现形式简单介绍Intent的作⽤和表现形式简单介绍1.描写叙述:Intent负责相应⽤中⼀次操作的动作,动作涉及的数据,附加数据进⾏描写叙述。
系统或者应⽤依据此Intent的描写叙述,负责找到相应的组件,将Intent传递给调⽤的组件。
⽽且完毕组件的调⽤。
Intent在这⾥起着⼀个媒体中介的作⽤,专门提供组件相互调⽤的相关信息。
2.Intent的表现形式:激活⼀个Activity开启服务发送⼴播訪问ContentProvider3.Intent的属性设置:设置动作:setAction 表⽰要⼲什么setData:设置数据,表⽰要传递给⽬标组件的数据。
它是⼀个URI格式的数据。
setType:表⽰要訪问的数据类型,是⼀个MIME类型的数据(Image/* Voide/* text/plain vnd.android.dir/image)addCategory:设置要訪问的组件的类别,能够同⼀时候加⼊多个类别。
4.显⽰意图和隐式意图显⽰调⽤:直接指定要调⽤的组件的类名⼀般在调⽤本应⽤程序时使⽤隐式调⽤:通过对要调⽤的组件的动作,类别,数据的描写叙述,来訪问⽬标组件。
⼀般在调⽤第三⽅软件时使⽤。
5.附加数据附加数据实现的两种⽅式1.intent.putExtra(key,value)2.通过Bundle附加数据 Bundle相似于HashMap intent.putExtras(Bundle)当⼀个Activity须要被其它软件调⽤时,该Activity必须是指为隐式意图。
⼀个Activity能够配置多个意图过滤器。
⼀个意图过滤器也能够配置多个,能够配置多个,在使⽤时,仅仅要有⼀个意图过滤器,相应的⼀个,以及满⾜要求。
就能够打开该Activity。
訪问⽹络时,⼀定要加⼊权限。
调⽤⼀个应⽤去浏览⽹页时,本应⽤不⼀定须要加⼊訪问⽹络的权限,可是被调⽤应⽤程序⼀定要有⽹络訪问的权限。
意图过滤器中的动作能够⾃定义。
intent原理及使用实验报告
标题:Intent原理及使用实验报告一、实验目的通过本次实验,我们旨在深入理解Android中的Intent机制,掌握其基本原理和使用方法。
同时,通过实际操作,提高我们的编程技能和问题解决能力。
二、实验原理Intent是Android开发中的核心概念之一,它提供了一种在应用程序组件之间传递信息的方式。
Intent可以用来启动活动(Activity)、服务(Service)和广播接收器(Broadcast Receiver)。
三、实验步骤1. 创建Activity首先,我们创建了两个简单的Activity,分别是MainActivity和SecondActivity。
在MainActivity中,我们放置了一个按钮,当点击这个按钮时,将启动SecondActivity。
2. 使用Intent启动SecondActivity在MainActivity的按钮点击事件中,我们创建了一个Intent对象,并使用startActivity()方法将其启动。
这样,当用户点击按钮时,SecondActivity就会显示出来。
3. 传递数据我们尝试将一些数据从MainActivity传递到SecondActivity。
为此,我们在创建Intent时,使用putExtra()方法将数据添加到Intent中。
在SecondActivity中,我们使用getIntent().getExtras()方法获取这些数据。
4. 返回数据我们还尝试了从SecondActivity返回数据到MainActivity。
为此,我们在SecondActivity的onOptionsItemSelected()方法中创建了一个新的Intent,并使用putExtra()方法添加数据。
然后,我们使用setResult()方法将这个Intent返回给MainActivity。
在MainActivity中,我们重写了onActivityResult()方法来获取返回的数据。
intent用法
intent用法- Intent是什么?Intent是Android系统中的一个重要组件,用于在应用程序之间传递消息和数据。
它可以启动一个Activity、Service或者BroadcastReceiver,也可以传递数据给其他组件。
- Intent的分类Intent分为显式Intent和隐式Intent两种。
显式Intent:指定了组件的完整类名,用于启动指定的Activity、Service或者BroadcastReceiver。
隐式Intent:没有指定组件的完整类名,而是通过指定Intent 的Action、Category和Data等属性来匹配系统中已注册的组件。
- Intent的构成Intent由Action、Category、Data、Type、Component和Extras等属性组成。
Action:指定Intent要执行的操作,比如打开一个Activity或者发送一条广播。
Category:指定Intent所属的类别,比如DEFAULT、BROWSABLE 等。
Data:指定Intent要操作的数据,比如打开一个网页或者查找一个联系人。
Type:指定Intent要操作的数据类型,比如文本、图片、音频等。
Component:指定Intent要启动的组件的完整类名。
Extras:携带Intent所需的附加数据,比如传递一个字符串、整数或者对象等。
- Intent的使用场景Intent广泛应用于Android应用程序的各个方面,比如:启动Activity:通过Intent启动一个Activity,让用户进入另一个界面。
启动Service:通过Intent启动一个Service,执行后台任务。
发送Broadcast:通过Intent发送一条广播,让其他组件接收并处理。
启动ActivityForResult:通过Intent启动一个Activity,并等待其返回结果。
- Intent的注意事项使用Intent时需要注意以下几点:Intent的Action、Category和Data等属性需要与组件的Intent Filter匹配才能启动成功。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
android中的Intent的用法和原理属性2010-06-10 17:18:52| 分类:android|字号订阅Android中提供了Intent机制来协助应用间的交互与通讯,Intent负责对应用中一次操作的动作、动作涉及数据、附加数据进行描述,Android则根据此Intent的描述,负责找到对应的组件,将 Intent传递给调用的组件,并完成组件的调用。
Intent不仅可用于应用程序之间,也可用于应用程序内部的Activity/Service之间的交互。
因此,Intent在这里起着一个媒体中介的作用,专门提供组件互相调用的相关信息,实现调用者与被调用者之间的解耦。
在SDK中给出了Intent作用的表现形式为:通过Context.startActivity() orActivity.startActivityForResult() 启动一个Activity;通过 Context.startService() 启动一个服务,或者通过Context.bindService() 和后台服务交互;通过广播方法(比如 Context.sendBroadcast(),Context.sendOrderedBroadcast(), Context.sendStickyBroadcast()) 发给broadcast receivers。
Intent属性的设置,包括以下几点:(以下为XML中定义,当然也可以通过Intent类的方法来获取和设置)(1)Action,也就是要执行的动作SDk中定义了一些标准的动作,包括onstantTarget componentActionACTION_CALLactivityInitiate a phone call.ACTION_EDITactivityDisplay data for the user to edit.ACTION_MAINactivityStart up as the initial activity of a task, with no data input and no returned output.ACTION_SYNCactivitySynchronize data on a server with data on the mobile device. ACTION_BATTERY_LOWbroadcast receiverA warning that the battery is low.ACTION_HEADSET_PLUGbroadcast receiverA headset has been plugged into the device, or unplugged from it.ACTION_SCREEN_ONbroadcast receiverThe screen has been turned on.ACTION_TIMEZONE_CHANGEDbroadcast receiverThe setting for the time zone has changed.当然,也可以自定义动作(自定义的动作在使用时,需要加上包名作为前缀,如"com.example.project.SHOW_COL OR”),并可定义相应的Activity来处理我们的自定义动作。
(2)Data,也就是执行动作要操作的数据Android中采用指向数据的一个URI来表示,如在联系人应用中,一个指向某联系人的URI可能为:content://contacts/1。
对于不同的动作,其URI数据的类型是不同的(可以设置type属性指定特定类型数据),如ACTION_EDIT指定Data为文件URI,打电话为tel:URI,访问网络为http:URI,而由content provider提供的数据则为content: URIs。
(3)type(数据类型),显式指定Intent的数据类型(MIME)。
一般Intent的数据类型能够根据数据本身进行判定,但是通过设置这个属性,可以强制采用显式指定的类型而不再进行推导。
(4)category(类别),被执行动作的附加信息。
例如 LAUNCHER_CATEGORY 表示Intent 的接受者应该在Launcher中作为顶级应用出现;而ALTERNATIVE_CATEGORY 表示当前的Intent是一系列的可选动作中的一个,这些动作可以在同一块数据上执行。
还有其他的为ConstantMeaningCATEGORY_BROWSABLEThe target activity can be safely invoked by the browser to display data referenced by a link — for example, an image or an e-mail message. CATEGORY_GADGETThe activity can be embedded inside of another activity that hosts gadgets.CATEGORY_HOMEThe activity displays the home screen, the first screen the user sees when the device is turned on or when the HOME key is pressed.CATEGORY_LAUNCHERThe activity can be the initial activity of a task and is listed in the top-level application launcher.CATEGORY_PREFERENCEThe target activity is a preference panel.(5)component(组件),指定Intent的的目标组件的类名称。
通常 Android会根据Intent 中包含的其它属性的信息,比如action、data/type、category进行查找,最终找到一个与之匹配的目标组件。
但是,如果 component这个属性有指定的话,将直接使用它指定的组件,而不再执行上述查找过程。
指定了这个属性以后,Intent的其它所有属性都是可选的。
(6)extras(附加信息),是其它所有附加信息的集合。
使用extras可以为组件提供扩展信息,比如,如果要执行“发送电子邮件”这个动作,可以将电子邮件的标题、正文等保存在extras里,传给电子邮件发送组件。
理解Intent的关键之一是理解清楚Intent的两种基本用法:一种是显式的Intent,即在构造Intent对象时就指定接收者;另一种是隐式的Intent,即Intent的发送者在构造Intent对象时,并不知道也不关心接收者是谁,有利于降低发送者和接收者之间的耦合。
对于显式Intent,Android不需要去做解析,因为目标组件已经很明确,Android需要解析的是那些隐式Intent,通过解析,将 Intent映射给可以处理此Intent的Activity、IntentReceiver或Service。
Intent解析机制主要是通过查找已注册在AndroidManifest.xml中的所有IntentFilter及其中定义的Intent,最终找到匹配的Intent。
在这个解析过程中,Android是通过Intent的action、type、category这三个属性来进行判断的,判断方法如下:如果Intent指明定了action,则目标组件的IntentFilter的action列表中就必须包含有这个action,否则不能匹配;如果Intent没有提供type,系统将从data中得到数据类型。
和action一样,目标组件的数据类型列表中必须包含Intent的数据类型,否则不能匹配。
如果Intent中的数据不是content: 类型的URI,而且Intent也没有明确指定它的type,将根据Intent中数据的scheme (比如 http: 或者mailto:)进行匹配。
同上,Intent 的scheme必须出现在目标组件的scheme列表中。
如果Intent指定了一个或多个category,这些类别必须全部出现在组建的类别列表中。
比如Intent中包含了两个类别:LAUNCHER_CATEGORY 和ALTERNATIVE_CATEGORY,解析得到的目标组件必须至少包含这两个类别。
Intent-Filter的定义一些属性设置的例子:<action android:name="com.example.project.SHOW_CURRENT" /><category android:name="android.intent.category.DEFAULT" /><data android:mimeType="video/mpeg" android:scheme="http" . . . /><data android:mimeType="image/*" /><data android:scheme="http" android:type="video/*" />完整的实例<activity android:name="NotesList" android:label="@string/title_notes_list"><intent-filter><action android:name="android.intent.action.MAIN" /><category android:name="UNCHER" /></intent-filter><intent-filter><action android:name="android.intent.action.VIEW" /><action android:name="android.intent.action.EDIT" /><action android:name="android.intent.action.PICK" /><category android:name="android.intent.category.DEFAULT" /><data android:mimeType="vnd.android.cursor.dir/vnd.google.note" /></intent-filter><intent-filter><action android:name="android.intent.action.GET_CONTENT" /><category android:name="android.intent.category.DEFAULT" /><data android:mimeType="vnd.android.cursor.item/vnd.google.note" /> </intent-filter></activity>Intent用法实例1.无参数Activity跳转Intent it = new Intent(Activity.Main.this, Activity2.class);startActivity(it);2.向下一个Activity传递数据(使用Bundle和Intent.putExtras)Intent it = new Intent(Activity.Main.this, Activity2.class);Bundle bundle=new Bundle();bundle.putString("name", "This is from MainActivity!");it.putExtras(bundle); // it.putExtra(“test”, "shuju”);startActivity(it); // startActivityForResult(it,REQUEST_CODE);对于数据的获取可以采用:Bundle bundle=getIntent().getExtras();String name=bundle.getString("name");3.向上一个Activity返回结果(使用setResult,针对startActivityForResult(it,REQUEST_CODE)启动的Activity)Intent intent=getIntent();Bundle bundle2=new Bundle();bundle2.putString("name", "This is from ShowMsg!");intent.putExtras(bundle2);setResult(RESULT_OK, intent);4.回调上一个Activity的结果处理函数(onActivityResult)@Overrideprotected void onActivityResult(int requestCode, int resultCode, Intent data) { // TODO Auto-generated method stubsuper.onActivityResult(requestCode, resultCode, data);if (requestCode==REQUEST_CODE){if(resultCode==RESULT_CANCELED)setTitle("cancle");else if (resultCode==RESULT_OK) {String temp=null;Bundle bundle=data.getExtras();if(bundle!=null) temp=bundle.getString("name");setTitle(temp);}}}下面是转载来的其他的一些Intent用法实例(转自javaeye)显示网页1. Uri uri = Uri.parse("");2. Intent it = new Intent(Intent.ACTION_VIEW, uri);3. startActivity(it);显示地图1. Uri uri = Uri.parse("geo:38.899533,-77.036476");2. Intent it = new Intent(Intent.ACTION_VIEW, uri);3. startActivity(it);4. //其他 geo URI 範例5. //geo:latitude,longitude6. //geo:latitude,longitude?z=zoom7. //geo:0,0?q=my+street+address8. //geo:0,0?q=business+near+city9. //google.streetview:cbll=lat,lng&cbp=1,yaw,,pitch,zoom&mz=mapZoom路径规划1. Uri uri =Uri.parse("/maps?f=d&saddr=startLat%20startLng&daddr=endLat %20endLng&hl=en");2. Intent it = new Intent(Intent.ACTION_VIEW, uri);3. startActivity(it);4. //where startLat, startLng, endLat, endLng are a long with 6 decimals like:50.123456打电话1. //叫出拨号程序2. Uri uri = Uri.parse("tel:0800000123");3. Intent it = new Intent(Intent.ACTION_DIAL, uri);4. startActivity(it);1. //直接打电话出去2. Uri uri = Uri.parse("tel:0800000123");3. Intent it = new Intent(Intent.ACTION_CALL, uri);4. startActivity(it);5. //用這個,要在 AndroidManifest.xml 中,加上6. //<uses-permission id="android.permission.CALL_PHONE" /> 传送SMS/MMS1. //调用短信程序2. Intent it = new Intent(Intent.ACTION_VIEW, uri);3. it.putExtra("sms_body", "The SMS text");4. it.setType("vnd.android-dir/mms-sms");5. startActivity(it);1. //传送消息2. Uri uri = Uri.parse("smsto://0800000123");3. Intent it = new Intent(Intent.ACTION_SENDTO, uri);4. it.putExtra("sms_body", "The SMS text");5. startActivity(it);1. //传送 MMS2. Uri uri = Uri.parse("content://media/external/images/media/23");3. Intent it = new Intent(Intent.ACTION_SEND);4. it.putExtra("sms_body", "some text");5. it.putExtra(Intent.EXTRA_STREAM, uri);6. it.setType("image/png");7. startActivity(it);传送 Email1. Uri uri = Uri.parse("mailto:xxx@");2. Intent it = new Intent(Intent.ACTION_SENDTO, uri);3. startActivity(it);1. Intent it = new Intent(Intent.ACTION_SEND);2. it.putExtra(Intent.EXTRA_EMAIL, "me@");3. it.putExtra(Intent.EXTRA_TEXT, "The email body text");4. it.setType("text/plain");5. startActivity(Intent.createChooser(it, "Choose Email Client"));1. Intent it=new Intent(Intent.ACTION_SEND);2. String[] tos={"me@"};3. String[] ccs={"you@"};4. it.putExtra(Intent.EXTRA_EMAIL, tos);5. it.putExtra(Intent.EXTRA_CC, ccs);6. it.putExtra(Intent.EXTRA_TEXT, "The email body text");7. it.putExtra(Intent.EXTRA_SUBJECT, "The email subject text");8. it.setType("message/rfc822");9. startActivity(Intent.createChooser(it, "Choose Email Client"));1. //传送附件2. Intent it = new Intent(Intent.ACTION_SEND);3. it.putExtra(Intent.EXTRA_SUBJECT, "The email subject text");4. it.putExtra(Intent.EXTRA_STREAM, "file:///sdcard/mysong.mp3");5. sendIntent.setType("audio/mp3");6. startActivity(Intent.createChooser(it, "Choose Email Client"));播放多媒体Uri uri = Uri.parse("file:///sdcard/song.mp3");Intent it = new Intent(Intent.ACTION_VIEW, uri);it.setType("audio/mp3");startActivity(it);Uri uri =Uri.withAppendedPath(MediaStore.Audio.Media.INTERNAL_CONTENT_URI, "1"); Intent it = new Intent(Intent.ACTION_VIEW, uri);startActivity(it);Market 相关1. //寻找某个应用2. Uri uri = Uri.parse("market://search?q=pname:pkg_name");3. Intent it = new Intent(Intent.ACTION_VIEW, uri);4. startActivity(it);5. //where pkg_name is the full package path for an application1. //显示某个应用的相关信息2. Uri uri = Uri.parse("market://details?id=app_id");3. Intent it = new Intent(Intent.ACTION_VIEW, uri);4. startActivity(it);5. //where app_id is the application ID, find the ID6. //by clicking on your application on Market home7. //page, and notice the ID from the address barUninstall 应用程序1. Uri uri = Uri.fromParts("package", strPackageName, null);2. Intent it = new Intent(Intent.ACTION_DELETE, uri);3. startActivity(it);。