Activity-Intent的模糊跳转(3)
来源:互联网 发布:华客数据恢复论坛 编辑:程序博客网 时间:2024/06/08 09:28
Intent有如下属性,除了Extras,Flags其大部分属性是用来模糊跳转的.
1.Component name 2.Action
3.Data 4.Category
5.Extras 6.Flags
以下分析他们是如何跳转.
1.Component name 最直接的查询跳转方式,此时AndroidManifest.xml所在的<activity />不需要任何配置
当系统启动该intent的时候,会在该文件中查找相关组件的name属性,发现匹配则打开!
Intent intent=new Intent();//通过setComponent或者setClass达到直接启动另一个ac的目的intent.setComponent(new ComponentName(MainActivity.this,AnotherActivity.class));//intent.setClass(MainActivity.this,AnotherActivity.class);
发现匹配则加入列表,AndroidManifest.xml中可能有相同的<action />标签,这时候用户根据需要可以选择打开.
Intent intent=new Intent();//通过setAction模糊查找具有相同<action />标签的acintent.setAction(Intent.ACTION_VIEW);
同时,我们对AndroidManifest.xml文件需要配置<action />的组件添加标签,必须赋加一个
<category android:name="android.intent.category.DEFAULT" />标签.否则无效
一个<intent-filter />可以有多个<action />子标签,如下
<activity android:name="com.example.testactivity.AnotherActivity" android:label="@string/app_name" > <intent-filter> <action android:name="android.intent.action.GO" /> <action android:name="android.intent.action.COME" /> <category android:name="android.intent.category.DEFAULT" /> </intent-filter></activity>
3.Data 通过setData设置一个Uri,或者通过setType设置一个mimeType.系统查找方式同上.代码如下:
Intent intent=new Intent();//通过setType或者setData查找具有相同mimeType的acintent.setType("text/javascript");//intent.setData(Uri.parse("http://www.baidu.com"));//intent.setDataAndType(data, type);
<activity android:name="com.example.testactivity.AnotherActivity" android:label="@string/app_name" > <intent-filter> <data android:mimeType="text/javascript"/> <category android:name="android.intent.category.DEFAULT" /> </intent-filter> </activity>
5.Extras ,两个Activity之间的跳转当然避免不了传值.Intent对象接受各种基本类型的值.
对于特殊的类型,比如自定义的Obj对象,必须在定义的时候继承Parcelable接口.该接口的作用是
把一个定义的obj对象变为可从Parcel写入或者存储.
public class MyParcelable implements Parcelable { private int mData; public int describeContents() { return 0; } public void writeToParcel(Parcel out, int flags) { out.writeInt(mData); } public static final Parcelable.Creator<MyParcelable> CREATOR = new Parcelable.Creator<MyParcelable>() { public MyParcelable createFromParcel(Parcel in) { return new MyParcelable(in); } public MyParcelable[] newArray(int size) { return new MyParcelable[size]; } }; private MyParcelable(Parcel in) { mData = in.readInt(); } }
0 0
- Activity-Intent的模糊跳转(3)
- Activity的跳转Intent
- Intent实现Activity的跳转
- Intent跳转到新的Activity
- Activity跳转时Intent的使用
- Activity之间的跳转—Intent
- 【intent】Android activity简单的跳转
- Android--Activity之间的跳转(Intent)
- BroadcastReceiver实现Intent的Activity跳转
- Intent 跳转Activity
- intent 跳转activity无效
- Intent 实现Activity跳转
- activity用intent跳转
- Intent实现activity跳转
- Activity 跳转之Intent
- Intent实现Activity跳转
- Activity之间的跳转(Activity和intent)
- preferenceScreen 利用intent跳转activity
- Linux环境下的GCC编译器与GDB调试工具介绍
- 第六周作业2;IF语句大显身手之成绩判断!
- JS获取页面EXT.NET控件
- 作业(数组)---运行环境winTC(一)
- 顺序表的实现
- Activity-Intent的模糊跳转(3)
- Android4.x 如何处理Power按键
- VC++编程实现修改EXE文件图标
- Sqlite存储图片文字
- Android使用Application总结
- gcc依赖安装(附带rzsz安装)
- 最重要的两部分是内容和外链
- USB 基本知识
- 第7周作业1-循环大战