WEB开发网
开发学院手机开发Android 开发 Android 面试之讲一下你对 Activity 的了解 阅读

Android 面试之讲一下你对 Activity 的了解

 2010-03-24 03:51:00 来源:WEB开发网   
核心提示:<dataandroid:mimeType="vnd.android.cursor.dir/vnd.google.note"/> </intent-filter> <intent-filter> <action android:name="and
<data
android:mimeType="vnd.android.cursor.dir/vnd.google.note"
/>
</intent-filter>

<intent-filter>   <action android:name="android.intent.action.VIEW" />   <action android:value="android.intent.action.EDIT" />   <action android:value="android.intent.action.PICK" />   <category android:name="android.intent.category.DEFAULT" />   <data android:mimeType="vnd.android.cursor.dir/vnd.google.note" /></intent-filter>

android:name="android.intent.category.DEFAULT">android:mimetype="vnd.android.cursor.dir/vnd.google.note">这里面配置用到了action, data, category这些东西,那么聪明的你一定想到intent里也会有这些东西,然后一匹配不就找到接收者了吗?

action其实就是一个意图的字符串名称。

上面这段intent-filter的配置文件说明了这个Activity可以接受不同的Action,当然相应的程序逻辑也不一样咯,提一下那个 mimeType,他是在ContentProvider里定义的,你要是自己实现一个ContentProvider就知道了,必须指定 mimeType才能让数据被别人使用。

不知道原理说明白没,总结一句,就是你调用别的界面不是直接new那个界面,而是通过扔出一个intent,让系统帮你去调用那个界面,这样就多么松藕合啊,而且符合了生命周期被系统管理的原则。

想知道category都有啥,Android为你预先定制好的action都有啥等等,请亲自访问官方链接Intent

ps:想知道怎么调用系统应用程序的同学,可以仔细看一下你的logcat,每次运行一个程序的时候是不是有一些信息比如:

Starting activity: Intent { action=android.intent.action.MAINcategories={android.intent.category.LAUNCHER} flags=0x10200000comp={com.android.camera/com.android.camera.GalleryPicker} }

再对照一下Intent的一些set方法,就知道怎么调用咯,希望你喜欢:)

上一页  1 2 3 4 5 

Tags:Android 面试 一下

编辑录入:coldstar [复制链接] [打 印]
赞助商链接