android 意图intent
2010-11-28 22:54:01| 分类:
android
| 标签:
|举报
|字号大中小 订阅
android中意图(intent)就是告诉系统要做某件事情。比如要拨打电话或者发送短信。
或者在一个Activity中点击按钮跳转到另外一个activity时也用到意图。
意图分为两种:显示意图和隐式意图
显示意图:
在构造意图时直接指定意图的class,则这种方式为显示意图。如:
Intent intent=new Intent(context,OtherActivity.class);
这种情况是在同一个应用中从一个意图调用另外一个意图时可以这么使用。
隐式意图:
此意图构造时不指定意图的class,而是制定一个名字和类别或者还有数据格式等,这些名字类别数据格式是在应用的功能清单中申明的。
<activity android:name=".OtherActivity" android:label="你好">
<intent-filter>
<action android:name="org.main.actions.Other"/>
<category android:name="org.main.categories.Other"/>
<category android:name="android.intent.category.DEFAULT"/> <!--不可少 -->
<data android:scheme="num" android:host="www.xxx.cn" android:path="/files"/>
</intent-filter>
</activity>
如上面这个activity。我们在别的activity里要调用这个activity时,使用隐式的方法就这么调用:
Intent intent=new Intent();
intent.setAction("org.main.actions.Other");
intent.addCategory("org.main.categories.Other");
//另外由于我们声明了data在intent-filter中,所以还需要为intent 设置数据(data),且数据需要与data标签中指定的数据结构类型和主机名还有路径一致
intent.setData(Uri.parse("num://www.xxx.cn/files/992034.gif"));
startActivity(intent); //这个方法里面会默认调用 intent.addCategory("android.intent.category.DEFAULT");,所以在编写intent的filter的使用android.intent.category.DEFAULT这个category必须声明。
评论这张
转发至微博
转发至微博
评论