展会信息港展会大全

Activity详解 Intent显式跳转和隐式跳转
来源:互联网   发布日期:2016-01-14 09:31:03   浏览:1773次  

导读:Activity 生命周期 显式 Intent 调用 1 //创建一个显式的 Intent 对象(方法一:在构造函数中指定) 2 Intent intent = new Intent(Intent_Demo1.this, Intent_Demo1_Result1.class); 3 4 Bundle bundle = new Bundle(); 5 bundle.putString(id, strID); 6 int...

Activity 生命周期

显式 Intent 调用

1//创建一个显式的 Intent 对象(方法一:在构造函数中指定)

2Intent intent = new Intent(Intent_Demo1.this, Intent_Demo1_Result1.class);

3

4Bundle bundle = new Bundle();

5bundle.putString("id", strID);

6intent.putExtras(bundle);

7

8intent.putExtra("name", "bbb");

9intent.putExtra("userInfo", new UserInfo(1, "name"));

10startActivity(intent);

11

12//创建一个显式的 Intent 对象(方法二:用 setClass 方法)

13Intent intent = new Intent();

14Bundle bundle = new Bundle();

15bundle.putString("id", strID);

16intent.setClass(Intent_Demo1.this, Intent_Demo1_Result1.class);

17intent.putExtras(bundle);

18startActivity(intent);

19

20//创建一个显式的 Intent 对象(方法三:用 setClass 方法)

21Intent intent = new Intent();

22Bundle bundle = new Bundle();

23bundle.putString("id", strID);

24intent.setClassName(Intent_Demo1.this, "com.great.activity_intent.Intent_Demo1_Result1");

25intent.putExtras(bundle);

26startActivity(intent);

27

28//创建一个显式的 Intent 对象(方法四:用 setComponent 方法)

29Intent intent = new Intent();

30Bundle bundle = new Bundle();

31bundle.putString("id", strID);

32//setComponent方法的参数:ComponentName

33intent.setComponent(new ComponentName(Intent_Demo1.this, Intent_Demo1_Result1.class));

34intent.putExtras(bundle);

35startActivity(intent);

Intent隐式跳转 Action

1//创建一个隐式的 Intent 对象:Action 动作

2/**

3* 这里指定的是 AndroidManifest.xml 文件中配置的

4* <intent-filter>标签中的<action android:name="com.great.activity_intent.Intent_Demo1_Result3" />

5* 所在的 Activity,注意这里都要设置 <category android:name="android.intent.category.DEFAULT" />

6*/

7Intent intent = new Intent();

8//设置 Intent 的动作

9intent.setAction("com.great.activity_intent.Intent_Demo1_Result3");

10Bundle bundle = new Bundle();

11bundle.putString("id", strID);

12intent.putExtras(bundle);

13startActivity(intent);

AndroidManifest.xml

1<activity android:name="Intent_Demo1_Result3"

2android:label="Intent_Demo1_Result3">

3<intent-filter>

4<action android:name="com.great.activity_intent.Intent_Demo1_Result3" />

5<category android:name="android.intent.category.DEFAULT" />

6</intent-filter>

7</activity>

Category 类别

1 //创建一个隐式的 Intent 对象:Category 类别

2 Intent intent = new Intent();

3 intent.setAction("com.great.activity_intent.Intent_Demo1_Result33");

4 /**

5* 不指定 Category 或 只指定 AndroidManifest.xml 文件中 <intent-filter> 标签中配置的任意一个 Category

6* <category android:name="android.intent.category.DEFAULT" /> 除外,就可以访问该 Activity,

7*/

8 intent.addCategory(Intent.CATEGORY_INFO);

9 intent.addCategory(Intent.CATEGORY_DEFAULT);

10 Bundle bundle = new Bundle();

11 bundle.putString("id", strID);

12 intent.putExtras(bundle);

13 startActivity(intent);

AndroidManifest.xml

<activity android:name="Intent_Demo1_Result2"

android:label="Intent_Demo1_Result2">

<intent-filter>

<category android:name="android.intent.category.INFO" />

<category android:name="android.intent.category.BROWSABLE" />

<category android:name="android.intent.category.DEFAULT" />

</intent-filter>

</activity>

Date 数据 跳转

1 //创建一个隐式的 Intent 对象,方法四:Date 数据

2 Intent intent = new Intent();

3 Uri uri = Uri.parse("http://www.great.org:8080/folder/subfolder/etc/abc.pdf");

4

5 //注:setData、setDataAndType、setType 这三种方法只能单独使用,不可共用

6 //要么单独以 setData 方法设置 URI

7 //intent.setData(uri);

8 //要么单独以 setDataAndType 方法设置 URI 及 mime type

9 intent.setDataAndType(uri, "text/plain");

10 //要么单独以 setDataAndType 方法设置 Type

11 //intent.setType("text/plain");

12

13 /**

14* 不指定 Category 或 只指定 AndroidManifest.xml 文件中 <intent-filter> 标签中配置的任意一个 Category

15* <category android:name="android.intent.category.DEFAULT" /> 除外,就可以访问该 Activity

16*/

17 Bundle bundle = new Bundle();

18 bundle.putString("id", strID);

19 intent.putExtras(bundle);

20 startActivity(intent);

AndroidManifest.xml

1<activity android:name="Intent_Demo1_Result2"

2android:label="Intent_Demo1_Result2">

3<intent-filter>

4<category android:name="android.intent.category.DEFAULT" />

5<data

6android:scheme="http"

7android:host="www.great.org"

8android:port="8080"

9android:pathPattern=".*pdf"

10android:mimeType="text/plain"/>

11</intent-filter>

12</activity>

13

调用系统的的组件

//web浏览器

Uri uri= Uri.parse("http://www.baidu.com:8080/image/a.jpg");

Intent intent = new Intent(Intent.ACTION_VIEW, uri);

startActivity(intent);

//地图(要在 Android 手机上才能测试)

Uri uri = Uri.parse("geo:38.899533,-77.036476");

Intent intent = new Intent(Intent.ACTION_VIEW, uri);

startActivity(intent);

//路径规划

Uri uri = Uri.parse("http://maps.google.com/maps?f=d&saddr=startLat%20startLng&daddr=endLat%20endLng&hl=en");

Intent it = new Intent(Intent.ACTION_VIEW, uri);

startActivity(it);

//拨打电话-调用拨号程序

Uri uri = Uri.parse("tel:15980665805");

Intent intent = new Intent(Intent.ACTION_DIAL, uri);

startActivity(intent);

//拨打电话-直接拨打电话

//要使用这个必须在配置文件中加入<uses-permission android:name="android.permission.CALL_PHONE"/>

Uri uri = Uri.parse("tel:15980665805");

Intent intent = new Intent(Intent.ACTION_CALL, uri);

startActivity(intent);

//调用发送短信程序(方法一)

Uri uri = Uri.parse("smsto:15980665805");

Intent intent = new Intent(Intent.ACTION_SENDTO, uri);

intent.putExtra("sms_body", "The SMS text");

startActivity(intent);

//调用发送短信程序(方法二)

Intent intent = new Intent(Intent.ACTION_VIEW);

intent.putExtra("sms_body", "The SMS text");

intent.setType("vnd.android-dir/mms-sms");

startActivity(intent);

//发送彩信

Uri uri = Uri.parse("content://media/external/images/media/23");

Intent intent = new Intent(Intent.ACTION_SEND);

intent.putExtra("sms_body", "some text");

intent.putExtra(Intent.EXTRA_STREAM, uri);

intent.setType("image/png");

startActivity(intent);

//发送Email(方法一)(要在 Android 手机上才能测试)

Uri uri = Uri.parse("mailto:zhangsan@gmail.com");

Intent intent = new Intent(Intent.ACTION_SENDTO, uri);

startActivity(intent);

//发送Email(方法二)(要在 Android 手机上才能测试)

Intent intent = new Intent(Intent.ACTION_SENDTO);

intent.setData(Uri.parse("mailto:zhangsan@gmail.com"));

intent.putExtra(Intent.EXTRA_SUBJECT, "这是标题");

intent.putExtra(Intent.EXTRA_TEXT, "这是内容");

startActivity(intent);

//发送Email(方法三)(要在 Android 手机上才能测试)

Intent intent = new Intent(Intent.ACTION_SEND);

intent.putExtra(Intent.EXTRA_EMAIL, "me@abc.com");

intent.putExtra(Intent.EXTRA_SUBJECT, "这是标题");

intent.putExtra(Intent.EXTRA_TEXT, "这是内容");

intent.setType("text/plain");

//选择一个邮件客户端

startActivity(Intent.createChooser(intent, "Choose Email Client"));

//发送Email(方法四)(要在 Android 手机上才能测试)

Intent intent = new Intent(Intent.ACTION_SEND);

//收件人

String[] tos = {"to1@abc.com", "to2@abc.com"};

//抄送人

String[] ccs = {"cc1@abc.com", "cc2@abc.com"};

//密送人

String[] bcc = {"bcc1@abc.com", "bcc2@abc.com"};

intent.putExtra(Intent.EXTRA_EMAIL, tos);

intent.putExtra(Intent.EXTRA_CC, ccs);

intent.putExtra(Intent.EXTRA_BCC, bcc);

intent.putExtra(Intent.EXTRA_SUBJECT, "这是标题");

intent.putExtra(Intent.EXTRA_TEXT, "这是内容");

intent.setType("message/rfc822");

startActivity(Intent.createChooser(intent, "Choose Email Client"));

//发送Email且发送附件(要在 Android 手机上才能测试)

Intent intent = new Intent(Intent.ACTION_SEND);

intent.putExtra(Intent.EXTRA_SUBJECT, "The email subject text");

intent.putExtra(Intent.EXTRA_STREAM, "file:///sdcard/mp3/醉红颜.mp3");

intent.setType("audio/mp3");

startActivity(Intent.createChooser(intent, "Choose Email Client"));

//播放媒体文件(android 对中文名的文件支持不好)

Intent intent = new Intent(Intent.ACTION_VIEW);

//Uri uri = Uri.parse("file:///sdcard/zhy.mp3");

Uri uri = Uri.parse("file:///sdcard/a.mp3");

intent.setDataAndType(uri, "audio/mp3");

startActivity(intent);

Uri uri = Uri.withAppendedPath(MediaStore.Audio.Media.INTERNAL_CONTENT_URI, "1");

Intent intent = new Intent(Intent.ACTION_VIEW, uri);

startActivity(intent);

//音乐选择器

//它使用了Intent.ACTION_GET_CONTENT 和 MIME 类型来查找支持 audio/* 的所有 Data Picker,允许用户选择其中之一

Intent intent = new Intent(Intent.ACTION_GET_CONTENT);

intent.setType("audio/*");

//Intent.createChooser:应用选择器,这个方法创建一个 ACTION_CHOOSER Intent

startActivity(Intent.createChooser(intent, "选择音乐"));

Intent intent1 = new Intent(Intent.ACTION_GET_CONTENT);

intent1.setType("audio/*");

Intent intent2 = new Intent(Intent.ACTION_CHOOSER);

intent2.putExtra(Intent.EXTRA_INTENT, intent1);

intent2.putExtra(Intent.EXTRA_TITLE, "aaaa");

startActivity(intent2);

////设置壁纸

//Intent intent = new Intent(Intent.ACTION_SET_WALLPAPER);

//startActivity(Intent.createChooser(intent, "设置壁纸"));

//卸载APK

//fromParts方法

//参数1:URI 的 scheme

//参数2:包路径

//参数3:

Uri uri = Uri.fromParts("package", "com.great.activity_intent", null);

Intent intent = new Intent(Intent.ACTION_DELETE, uri);

startActivity(intent);

//安装APK(???)

Uri uri = Uri.fromParts("package", "com.great.activity_intent", null);

Intent intent = new Intent(Intent.ACTION_PACKAGE_ADDED, uri);

startActivity(intent);

//调用搜索

Intent intent = new Intent();

intent.setAction(Intent.ACTION_WEB_SEARCH);

intent.putExtra(SearchManager.QUERY, "android");

startActivity(intent);

赞助本站

人工智能实验室

相关热词: android开发 教程

AiLab云推荐
展开

热门栏目HotCates

Copyright © 2010-2024 AiLab Team. 人工智能实验室 版权所有    关于我们 | 联系我们 | 广告服务 | 公司动态 | 免责声明 | 隐私条款 | 工作机会 | 展会港