第一篇往往都是一些概括和介绍,以便大家方便理解一些所要学习的东西。
下面我们就要更加细节的介绍一些关于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 的主要配置文件了。