关闭

Intent七大属性

224人阅读 评论(0) 收藏 举报
分类:

1, Intent的作用

        包装Android的组件

        启动Activity, 启动服务, 发送广播

        组件之间的传值

 2, Intent
  "显示"意图

 明确指定了要跳转的Activity  (通常用于应用程序内容组件的跳转)

  "隐式"意图

 不明确指定要跳转的Activity ,而是通过Intent来描述动作(跨应用程序之间的跳转)

   3, "显示"意图

         写法一:

            Intent intent = new Intent(MainActivity.this,InfoActivity.class);

            startActivity(intent);
          写法二:

            Intent intent = new Intent();

            intent.setClass(MainActivity.this,InfoActivity.class);

            startActivity(intent);

          写法三:

             ComponentName  包装android的组件(用于指定启动的组件)

             Intent intent = new Intent();

             ComponentName cName = new ComponentName(MainActivity.this,InfoActivity.class);

             intent.setComponent(cName);

             startActivity(intent);


    4, "隐式"意图

        action   表示要启动的Activity想要完成什么动作. 经常用在隐式意图中

             注意:   必须保证action在应用单中唯一性

             ACTION_MAIN (android:intent.action.MAIN)  : Android程序入口

             ACTION_VIEW  (android:intent.action.VIEW) : 显示指定的数据

             ACTION_EDIT  (android:intent.action.EDIT) : 编辑指定的数据

             ACTION_DIAL  (android:intent.action.DIAL) : 显示拨号面板界面

             ACTION_CALL  (android:intent.action.CALL) :  直接呼叫data中所携带的电话号码

             ACTION_SEND   (android:intent.action.SEND):  向其他人发送数据(彩信, email)

             ACTION_SENDTO  (android:intent.action.SENDTO) : 向其他人发生短信


    category:  为Action增加附加类别的信息

            android.intent.category.LAUNCHER   程序入口, 优先级最高

            android.intent.category.DEFAULT    默认的, 普通的Activity

        A应用(启动者)

             Intent intent = new Intent();

             intent.setAction("com.example.day_lanuchmode.B");//必须要和被启动的action一致

             startActivity(intent);    

        B应用(被启动者)  需要一个唯一的动作(action)

            在清单文件中, <activity/> 标签中, 指定 action + category
             <intent-filter>        

              <action  android:name="com.example.day_lanuchmode.B"/>                

            <category android:name="android.intent.category.DEFAULT"/>            

            </intent-filter>
 data:  指定action后, 将必要的数据放入data中


         比如:   拨打电话:  必须要有电话号码

         打开网页:   必须要有网址

         URI :   统一资源标识符(不同数据有不同的格式)

         拨打电话:  tel:110119120

         网址:      http://baidu.com

         发送短信:  smsto:10086

         地图上显示经纬度:geo://lantitude,lontitude

         文件数据格式:file://

 type: 如果data属性为文件的路径, 那么需要通过type来指定类型
        比如:
            文本    text/*
            图片    image/*
            视频    video/*
            音频    audio/*

Extra :保存额外的数据
Type: 属性用于指定Data所指定的Uri对应的MIME类型
Flag:
    intent.setFlags(.....);
    Intent.FLAG_ACTIVITY_SINGLE_TOP   等同于属性中的singleTop
    Intent.FLAG_ACTIVITY_CLEAR_TOP
     同sigleTask 相似, 当栈中不存在时创建; 如果存在那么会把它以及之上的所有实例移除,并且销毁.  创建一个新的实例放入栈的顶端
    Intent.FLAG_ACTIVITY_NEW_TASK
    必须要在清单文件的<activity/>标签中增加属性:
     android:taskAffinity="com.other"
     android:alwaysRetainTaskState="true"
     只有增加了这两个属性, 系统才会为当前的实例创建新的任务, 并且放到栈的底部, 否则等同于没有设置。
public class MainActivity extends Activity {

	@Override
	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.activity_main);
	}

	public void clickButton(View v) {
		Intent intent = new Intent();
		switch (v.getId()) {

		case R.id.button_01:
			// 显示启动1
			intent = new Intent(this, InfoActivity.class);
			break;
		case R.id.button_02:
			// 显示启动2
			intent.setClass(this, InfoActivity.class);
			break;
		case R.id.button_03:
			ComponentName componentName = new ComponentName(this,
					InfoActivity.class);
			// 设置Android包装的组件
			intent.setComponent(componentName);
			break;
		case R.id.button_04:
			intent.setAction("com.example.day_lanuchmode.B");
			break;
		case R.id.button_05:
			// 指定Intent的动作
			intent.setAction(Intent.ACTION_VIEW);
			// 指定必要的数据
			intent.setData(Uri.parse("http://baidu.com"));
			break;
		case R.id.button_06:
			intent.setAction(Intent.ACTION_VIEW);
			intent.setDataAndType(Uri.parse("file://storage/sdcard/lf.jpg"),
				"image/*");
			break;
		case R.id.button_07:
			intent.setAction(Intent.ACTION_VIEW);
			intent.setDataAndType(Uri.parse("file://storage/sdcard/123.txt"),
					"text/*");
			break;
		case R.id.button_08:
			intent.setAction(Intent.ACTION_VIEW);
			intent.setDataAndType(Uri.parse("file://storage/sdcard/movei.mp4"),
					"video/*");
			break;
		case R.id.button_09:
			intent.setAction(Intent.ACTION_VIEW);
			intent.setDataAndType(Uri.parse("file://storage/sdcard/wlxq.mp3"),
					"audio/*");

			break;
		case R.id.button_10:
			intent.setAction(Intent.ACTION_SENDTO);
			intent.setData(Uri.parse("smsto:110"));
			intent.putExtra("sms_body", "为了更好的学习, 咱们分手吧!!!");
			break;
		}
		startActivity(intent);
	}
}




0
0
查看评论

关于Intent的七大属性

原谅我愚昧,Intent七大属性这个概念我也是昨天才接触到,看了一下,都是一些常用的东西,就是没有总结过,那么今天就来简单总结一下。Intent七大属性是指Intent的ComponentName、Action、Category、Data、Type、Extra以及Flag。下面我们逐一来说。1.Co...
  • u012702547
  • u012702547
  • 2015-12-05 11:21
  • 8677

android之Intent的七大属性

Intent用于封装程序的“调用意图”。两个Activity之间,可以把需要交换的数据,封装成Bundle对象,然后使用Intent对象,携带数据到另一个Activity中。实现两个Activity的数据交换。     Intent还是各种应用程序组件之间通信的重要媒介。启...
  • kite30
  • kite30
  • 2016-06-17 10:37
  • 1182

Intent的七大属性

一、Intent对象介绍: 1、Intent用于封装程序的“调用意图”。俩个Activity之间传递数据的话,需要把数据封装成bundle对象,实现两个activity之间对象的数据交换。 2、Intent还是各种应用程序组件通讯的重要媒介。不管是启动一个Activity,service还是Br...
  • yunlong_
  • yunlong_
  • 2015-12-28 11:35
  • 404

Intent七大属性详解

package com.example.day05intentdemo;import java.io.File;import android.app.Activity; import android.content.ComponentName; import android.content.In...
  • tiantian_kuaile
  • tiantian_kuaile
  • 2015-09-08 19:02
  • 281

Intent七大属性

Intent七大属性: (1)ComponentName:组件名称(Intent想启动哪一个组件),显式启动Activity 三个构造器: 1)ComponentName cn = new ComponentName(content pkg,class cls); 第一个参数:上下文对象 (...
  • iblade
  • iblade
  • 2016-01-07 20:19
  • 367

Activity的七大属性

Activity的七大属性包括:      ComponentName   Extra   Flags  Category   Action    Data&#...
  • CSDN_OF_ZHAO
  • CSDN_OF_ZHAO
  • 2016-07-22 13:24
  • 257

Intent的七大属性:

1.ComponentName(组件):目标组件 2.Action(动作):意图动作 3.Category(类别):表示动作的类别 4.Data(数据):表示动作要操作的数据 5.Type(数据类型):对于data范例的描写 6.Extras(扩展信息):扩展信息 7.Flag(标志位)...
  • Silence_Leo
  • Silence_Leo
  • 2016-11-22 20:16
  • 142

(009)Intent的七大属性

Intent的七大属性 1, Intent的作用 包装Android的组件 组件之间的传值 启动Activity, 启动Service, 发送BroadcastReceiver 2, Intent "显式"意...
  • qq_36074822
  • qq_36074822
  • 2016-10-28 20:09
  • 76

Intent七大属性之总结

参考《疯狂android讲义》第5章 1、Intent 用于封装程序的”调用意图“,不管想启动一个Acitivity、Service还是BroadcastReceiver,Android均使用统一的Intent对象来封装这种”启动意图“。很明显使用Intent提供了一致的编程模型。 2、In...
  • jediael_lu
  • jediael_lu
  • 2013-11-10 09:41
  • 4537

Activity之Intent七大属性

1、ConponentName ** * 使用ComponentName跳转 */ private void initComponentName() { btnComponentName = (Button) findViewById(R.id.b...
  • q908555281
  • q908555281
  • 2015-09-17 15:13
  • 1380
    个人资料
    • 访问:117563次
    • 积分:2137
    • 等级:
    • 排名:千里之外
    • 原创:114篇
    • 转载:27篇
    • 译文:0篇
    • 评论:14条
    最新评论