android 之意图Intent的使用

Android中的Intent是一个非常重要且常用的类,可以用来在一个组件中启动App中的另一个组件或者是启动另一个App的组件,这里所说的组件指的是Activity、Service以及Broadcast。

Intent主要有以下几种重要用途: https://blog.csdn.net/iispring/article/details/48417779
1. 启动Activity:可以将Intent对象传递给startActivity()方法或startActivityForResult()方法以启动一个Activity,该Intent对象包含了要启动的Activity的信息及其他必要的数据。 
2. 启动Service:可以将Intent对象传递给startService()方法或bindService()方法以启动一个Service,该Intent对象包含了要启动的Service的信息及其他必要的数据。
3. 发送广播:广播是一种所有App都可以接收的信息。Android系统会发布各种类型的广播,比如发布开机广播或手机充电广播等。我们也可以给其他的App发送广播,可以将Intent对象传递给sendBroadcast()方法或sendOrderedBroadcast()方法或sendStickyBroadcast()方法以发送自定义广播。

显式的intent:指定要跳转的类名

隐式的intent:不指定组件名,而指定Intent的Action,Data,或Category,当我们启动组件时, 会去匹配AndroidManifest.xml相关组件的Intent-filter,逐一匹配出满足属性的组件,当不止一个满足时, 会弹出一个让我们选择启动哪个的对话框。

Intent有七个属性:

ComponentName(组件名称)

Action(动作)----intent要完成的抽象动作,只要能有一个action;<action android:name="android.intent.action.MAIN" />表示是程序的入口。当一个Android应用中有一个以上的入口Activity时,安装App时会生成多个的app图标,这几个APP其实是同一个,卸载其中一个,另外的也会被卸载。

Category(类别)----用于为action提供附加类别信息,一般和action一起使用。android.intent.category.LAUNCHER决定Activity是否列入系统的启动器。如果没有这个设置,手机设置中的“应用管理”,可以看到应用成功安装了,但是由于没有App的启动器,所以桌面上找不到。

Data(数据)-----向action属性提供操作的数据,通常是URI对象

Type(MIME类型)

Extras(额外数据)-----通常用语多个action之间的数据交换,是一个Bundle对象,通过键值对进行数据存储。

Flags(标记)

 

------------Intent的创建使用三种方法---------

//        //通过制定的包名和类名,叫做显式意图
        Intent inten = new Intent(this, NewActivity.class);//方法一
//
//        Intent inten = new Intent();//方法二
//        inten.setAction("newActivity");//设置跳转的动作
//inten.addCategory("android.intent.category.DEFAULT");//categary要和清单文件中的categary一样;这一句必须要,否则报错
//inten.setDataAndType(Uri.parse("newac:"+1101),"aa/bb");//newac要和清单文件中的scheme相同,aa/bb要和清单文件中的MIMIE相同
//
//        //方法三
//inten.setClassName("com.example.wofu.four","com.example.wofu.four.NewActivity");//第一个参数是包名,是清单文件中的package;第二个参数是要跳转的到的activity
//
        startActivity(inten);/*跳转到下一个页面*/

-------------manifest.xml------------

 <!--//name就是要显示的activity的类名-->
        <activity
            android:name=".NewActivity"
            android:label="newAc"
            android:theme="@style/AppTheme">
            <intent-filter>正式设置显式意图用的
                <action android:name="newActivity" />

                <category android:name="android.intent.category.DEFAULT" />
                <data
                    android:mimeType="aa/bb"
                    android:scheme="newac"/>
            </intent-filter>
        </activity>

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值