<java基础>零起点学Android(二)Intent 意图
来源:互联网 发布:java 汉字转unicode 编辑:程序博客网 时间:2024/05/08 14:56
第一篇往往都是一些概括和介绍,以便大家方便理解一些所要学习的东西。
下面我们就要更加细节的介绍一些关于android的类! 大家可能更习惯称起为组件什么的。
我更加愿意追究其本源,因为你使用的组件都是人写的类,所以我们称其为类,或许更能方便你理解,也更加会有一些成就感。
Intent 是用于要执行的操作或通信所使用。
Android 基本上所有的事情都是涉及Intent这个类的。
intent 可以分为显示 与 隐示
显示:明确指定了组件的名称,因为开发人员一般不会知道其他应用组件,
所以显示的intent一般会用于内部传递给指定目标类的实例。
比如: Intent intent = new Intent(A._Activity.this,B_Activity.this)
startActivity(intent)
这样就可以启动B_Activity
隐示:Component name 没有附值,不会指定目标名称。
通常用于启动其他应用组件,比如登陆账号授权跳转。
(使用隐示的intent操作时, Android 会搜索合适的响应组件,
之后将Intent对象内容跟intent filter(intent过滤器) 进行比较,
有过滤器才能接受隐示的intent 反之不能,有过滤器是可以接受显示的intent的。
android 在过滤的时候会考虑actioncategoryDataType )
想了解隐式的Intent 我们先进入AndroidManifest.xml
<activity android:name=".MyActivity" android:label="@string/app_name" android:theme="@android:style/Theme.Light"> <intent-filter> <action android:name="android.intent.action.MAIN"/> <category android:name="android.intent.category.LAUNCHER"/> </intent-filter> </activity>其中
<intent-filter>
与intent 有很大关联。看他的名字就知道他就是Intent拦截器。
没错、action是用来描述Intent执行动作名的字符串,并且一个拦截器中只能定义一个action标签。
有些时候我们还可以自定义Action 字符串,后面我遇到会详细说。(基本上就是包名+action名字 )
category是用来表示Intent的类别,也是个该死的字符串,但是他在一个拦截器中可以定义多个。
基本上android 用字符串当标识是常见的事情。当你想用隐身启动intent的时候必须Action与category同时对应上才可以
启动这个意图。
拦截器的标签还包括:
Component name 他是用来标识组件名称的,也是一个字符串。
接收Intent的完整名称包括包名,这样就会把intent发送到指定的实例中去。
Data 看字面就知道是数据啦。
Extra 附加信息也不多说 (其实是个map)
Flag 真正数据Intent 的标识。bit值
Type intent数据的mime类型(设定某种扩展名的文件用一种应用程序来打开的方式类型),
就类似你在这个程序下载个电影需要另一个程序播放。
通常android 会根据数据类型推断,如果指定了类型 就不会自动推断了。
启动隐身Intent的代码:
Intent intent = new Intent(Action_name);//这个Action_name就是对应在主配置文件中配置Intent拦截器的action-name
startActivity(intent)
注意:上文说的要和category配对,这里我们没有指定category 却仍然能找到对应的组件。因为什么呢?是因为这里面使用
了android为我们准备好的默认category。
要是我们在配置拦截器中写了category 的name 我们就要添加下面这样一段代码。
intent.addCategory (category_name)
拓展:
Intent intent = new Intent(Intent.Action_View);
intent.setData(Uri.parse("http://www.baidu.com"));
startActivity(intent);
上面则可以开启一个百度的首页。当然还需要在住配置文件中加入权限
Intent intent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
startActivity(intent);
上面则可以开启系统相机。当然也还需要在住配置文件中加入权限
等等等吧~
注意:我这里都用的Activity启动来说明事例,单intent并不是只能启动Activity.四大组件都可以再主配置文件中通过Intent启动
好啦 大家需要好好消化下。
接下来我们就会讲android 的主要配置文件了。
- <java基础>零起点学Android(二)Intent 意图
- <java基础>零起点学Android(三)
- <java基础>零起点学Android(六)
- <java基础>零起点学Android(一)大体介绍
- <java基础>零起点学Android(五)之应用窗口
- Android基础 | 意图Intent讲解
- 零起点学VB做外挂(二)
- 零基础学python(二)
- 零起点学Android(四)之Android四大组件
- [android]Intent意图
- android意图-intent
- android 中的意图intent
- android意图Intent
- Android Intent意图详解
- Android Intent 意图
- Android-Intent(意图)
- Android意图-Intent详解
- Android Intent(意图)介绍
- Java中获取键盘输入值的三种方法
- SQL中varchar和nvarchar有什么区别?
- 大型网站系统架构演化之路
- 图像切割上传SpringMVC
- 在Linux中点斜杠(./)和点空格点斜杠(. ./)执行脚本之间的区别
- <java基础>零起点学Android(二)Intent 意图
- Python Vim Configuration(Vim 设置成Python编辑器)in Windows
- 在xcode6中使用矢量图(iPhone6置配UI)
- Swift 编写的一个 ToDo App
- 标准模板库(STL)学习探究之Multimap容器
- SQlite在已创建的表中删除一列
- 方法工厂模式
- php.ini 配置文件的深入解析
- why manage transaction in your service