700字范文,内容丰富有趣,生活中的好帮手!
700字范文 > Android(Intent意图初解 显示意图 隐式意图 意图过滤器)

Android(Intent意图初解 显示意图 隐式意图 意图过滤器)

时间:2023-10-07 18:09:45

相关推荐

Android(Intent意图初解 显示意图 隐式意图 意图过滤器)

Android

Intent

简介:Intent被称为意图,是安卓程序中的一种比较重要的组件间交户的方式,可以用于组件间的跳转,传递数据等。通常用作启动Activity,Service以及发送广播等。根据开启目标组件的方式,一般可以被分为显式意图和隐式意图。

显式意图

简介:显式意图可以直接通过名称来开启指定的目标组件

例如:

Intent intent = new Intent(this,Main2Activity.class);startActivity(intent);

隐式意图

简介:隐式意图通过指定action和category等属性,让系统去根据这些信息找到符合的Activity。它不需要指定要启动的Activity,但需要指定要执行的操作,然后由系统去寻找绑定了这种操作的activity进行执行。

例如:

//隐式intentIntent intent = new Intent();intent.setActivity("cn.edu.jssvc.START_ACTIVITY");startActivity(intent);

//配置文件中配置intent过滤器<activity android:name = "cn.itcast.Main2Activity"><intent-filter><action android:name = "cn.itcast.START_ACTIVITY"/><category android:name = "android.intent.category.DEFAULT"/></intent-filter></activity>

intent过滤器

简介:在配置文件AndroidManifest.xml中为一个activity配置其intent过滤器,可以为隐式Intent的使用提供多层系统筛选。
action标签
配置action:在配置文件中为一个activity配置标签action设置其可以响应的Intent操作类型。intent.setAction():一个intent对象调用这个方法,将操作类型作为参数传递进去,可以为其设置操作类型,和上一条设置的标签对应。可以设置的内容:这个设置的操作名称可以是自定义的文本字符串也可以是android.intent.action类中的常量(比如:com.example.activitytest.ACTION_START)
category标签
配置category:在配置文件中为一个activity配置标签category设置其可以接受的intent类别。一般默认设置为android.intent.category.DEFAULTintent.addCategory():一个intent对象调用该方法,将其所属类型作为参数传递进去,可以为其标记其intent的类型,以便系统去筛查(默认为android.intent.category.DEFAULT)可以设置内容:一般是android.intent.category类中的常量,但也可以自定义,比如com.example.activitytest.MY_CATEGORY
data标签
配置data:这个是配置对携带特殊数据的intent响应,比如其中属性有:android:scheme,android:host,android,prot,android:path,android:mimeType。intent.setData():用这个方法可以让Intent对象携带一定的数据,对应上面配置的data标签检测。这些数据通常都是字符串通过Uri.parse()方法解析产生的。可设置内容:如第一条所示,其有五条属性,由于我学的比较浅,所以这里只记录第一条,是指相应的数据协议部分,比如http就是指网页。举个例子

下面这个设置就是一个可以响应携带网址信息的intent的activity

<activity android:name = ".ThirdActivity"><intent-filter><action android:name= "android.intent.action.VIEW"/><category android:name= "android.intent.category.DEFAULT"/><data android:scheme="http"/></intent-filter></activity>

//设置一个点击事件来激活一个写代网址信息的intentbutton1.setOnClickListener(new View.OnclickListener(){@Overridepublic void onClick(View v){Intent intent = new Intent(Intent.ACTION_VIEW);intent.setData(Uri.parse(""));startActivity(intent);}});

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。