我是靠谱客的博主 疯狂夕阳,最近开发中收集的这篇文章主要介绍Android7.0之从零开始:Intent及IntentFilter1.Intent及intentFilter的介绍2.Intent简单用法3.IntentFilter的用法,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

快速上手intent及intentFilter。

1.Intent及intentFilter的介绍

Intent 中文意思 “意图“,一般用组件间的通信。可用来激活Activity,Service,BroadCast Recevier。
激活Activity startActivity(intent);
激活Service startService(intent);
激活Broadcast sendBroadcast();

intent通信分显性和隐形,而intentFilter是实现隐形的intent通信。

2.Intent简单用法

只需要这两排代码就可以实现活动之间的跳转。
new Intent()中的第一个参数是当前活动,第二个是想要转去的目标活动。

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

我们可以在跳转的时候,传递一些信息

Intent intent = new Intent(MainActivity.this,IntentFilterActivity.class);
intent.putExtra(String类型的key,任意类型的value);
startActivity(intent); 

而取出传递信息只需要在目标Activity中如下操作

Intent intent = getIntent();
//所存信息的类型        例如
String answer = intent.get("key");

当然我们还可以 刷新我们当前的activity;
可以通过

Intent intent =getIntent();
finish();
startActivity(intent);  

3.IntentFilter的用法

当我们不想显性表露我们的意图可以使用 IntentFIlter

简单来说,我们可以通过 intent.setAction(), .setData(), .addCategory();
对intent添加标识符,然后通过intentFilter通过action,data,category识别出自己的intent,然后触发相应组件。

不需要设置 intentFilter,就可以通过setAction以下关键字,启动一些系统自带的服务。(只列出了一些常用的)

1 Intent.ACTION_MAIN
标识Activity为一个程序的开始

intent.setAction(Intent.ACTION_MAIN);

2 Intent.Action.DIAL
调用拨号面板

更多请见官方api
https://developer.android.com/reference/android/content/Intent.html

intentFilter分别有三个内容: action ,data, category

3.1 action

intent-filter 至少有一个 action ,否则无法与任何intent匹配
intent 通过方法intent.setAction(“”);设置action,只要与 intent-filter 中的一条 action 匹配(如果没有data category或者这两个都匹配) 则触发相应组件。

如果同时匹配两个intentFilter,你将发现非常有趣的现象。

3.2 category

intent 通过方法 intent.addCategory();添加 category。而只有当与intentFilter中 category 全部匹配才能 触发相应事件。

3.3data

而 data 和 setData(); 是通过 scheme, host, port, path, pathPrefix, pathPattern 是用来匹配 Intent 中的 Data Uri 的。

可通过

intent.setData(url);

配置
然后
在intentFilter中采用

    < data android:scheme="scheme"
    android:host="host"
    android:port = "port"
    android:path = "path"

进行匹配

3.4 mimeType (补充:也可用来匹配Intent)

如果Intent 使用了 intent.setType(“key”);,那么所有注册了android:mimeType = “key“的活动都会匹配到。

最后

以上就是疯狂夕阳为你收集整理的Android7.0之从零开始:Intent及IntentFilter1.Intent及intentFilter的介绍2.Intent简单用法3.IntentFilter的用法的全部内容,希望文章能够帮你解决Android7.0之从零开始:Intent及IntentFilter1.Intent及intentFilter的介绍2.Intent简单用法3.IntentFilter的用法所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(49)

评论列表共有 0 条评论

立即
投稿
返回
顶部