intent

来源:互联网 发布:企业级网管软件 编辑:程序博客网 时间:2024/05/29 19:03


一、定义

Intent是一种在不同组件之间传递的请求消息是应用程序发出的请求和意图。作为一个完整的消息传递机制,Intent不仅需要发送端,还需要接收端。

显式Intent定义:对于明确指出了目标组件名称的Intent,我们称之为显式Intent。

隐式Intent定义:对于没有明确指出目标组件名称的Intent,则称之为隐式Intent。

 

启动分为:

   1、A-->B 不需要B界面返回消息

   startactivity(initent);

 

   2、A-->B 需要B界面返回消息

   startActivityForResult(intent, requestCode);

 

例子:

1、利用Intent在Activity之间传递数组

在Main中执行如下代码:

  1: Bundle bundle = new Bundle();//一般用intent传递数组和对象是借助bundle

  2: bundle.putStringArray("array", myarray);

  3: Intent intent = new Intent(MainActivity.this, SecondActivity.class);

  4: intent.putExtras(bundle);

  5: startActivity(intent);

在SecondActivity中,代码如下:

  1: Bundle bundle = this.getIntent().getExtras();

  2: String[] myarray= bundle.getStringArray("array");

 

2、利用Intent在Activity之间传递普通数据(String、boolean、int等基本类型也可以是对象)

在Main中执行如下代码:

  1: Intent intent = new Intent(MainActivity.this, SecondActivity.class);

  2: intent.putExtra("name");

  3: startActivity(intent);

在SecondActivity中,代码如下:

  1: Intent intent = this.getIntent();

  2: String myarray= intent.getStringExtra("name");

 

二、常见系统调用的intent

1,调用web浏览器

  Java代码

  Uri myBlogUri = Uri.parse("http://www.hao123.com");//放入url地址

  returnIt = new Intent(Intent.ACTION_VIEW, myBlogUri);


  2,地图

  Java代码

  Uri mapUri = Uri.parse("geo:38.899533,-77.036476");//放入经纬度

  returnIt = new Intent(Intent.ACTION_VIEW, mapUri);


  3,调拨打电话界面

  Java代码

  Uri telUri = Uri.parse("tel:100861");

  returnIt = new Intent(Intent.ACTION_DIAL, telUri);


  4,直接拨打电话

  Java代码

  Uri callUri = Uri.parse("tel:100861");

  returnIt = new Intent(Intent.ACTION_CALL, callUri);


  5,卸载

  Java代码

  Uri uninstallUri = Uri.fromParts("package", "xxx", null);

  returnIt = new Intent(Intent.ACTION_DELETE, uninstallUri);


  6,安装

  Java代码

  Uri installUri = Uri.fromParts("package", "xxx", null);

  returnIt = new Intent(Intent.ACTION_PACKAGE_ADDED, installUri);


  7,播放

  Java代码

  Uri playUri = Uri.parse("file:///sdcard/download/everything.mp3");

  returnIt = new Intent(Intent.ACTION_VIEW, playUri);


  8,调用发邮件

  Java代码

  Uri emailUri = Uri.parse("mailto:shenrenkui@gmail.com");

  returnIt = new Intent(Intent.ACTION_SENDTO, emailUri);


  9,发邮件

  Java代码

  returnIt = new Intent(Intent.ACTION_SEND);

  String[] tos = { "shenrenkui@gmail.com" };

  String[] ccs = { "shenrenkui@gmail.com" };

  returnIt.putExtra(Intent.EXTRA_EMAIL, tos);

  returnIt.putExtra(Intent.EXTRA_CC, ccs);

  returnIt.putExtra(Intent.EXTRA_TEXT, "body");

  returnIt.putExtra(Intent.EXTRA_SUBJECT, "subject");

  returnIt.setType("message/rfc882");

  Intent.createChooser(returnIt, "Choose Email Client");


  10,发短信

 Java代码

  Uri smsUri = Uri.parse("tel:100861");

  returnIt = new Intent(Intent.ACTION_VIEW, smsUri);

  returnIt.putExtra("sms_body", "shenrenkui");

  returnIt.setType("vnd.android-dir/mms-sms");


  11,直接发邮件

  Java代码

  Uri smsToUri = Uri.parse("smsto://100861");

  returnIt = new Intent(Intent.ACTION_SENDTO, smsToUri);

  returnIt.putExtra("sms_body", "shenrenkui");


  12,发彩信

  Java代码

  Uri mmsUri = Uri.parse("content://media/external/images/media/23");

  returnIt = new Intent(Intent.ACTION_SEND);

  returnIt.putExtra("sms_body", "shenrenkui");

  returnIt.putExtra(Intent.EXTRA_STREAM, mmsUri);

  returnIt.setType("image/png");


      最后startActivity(returnIt)

 

0 0
原创粉丝点击