首页 技术 正文
技术 2022年11月21日
0 收藏 966 点赞 3,568 浏览 8790 个字
Activity 生命周期

  [转]Activity详解 Intent显式跳转和隐式跳转    显式 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      intent.putExtras(bundle); 7       8      intent.putExtra(“name”, “bbb”); 9      intent.putExtra(“userInfo”, new UserInfo(1, “name”));10      startActivity(intent);11      12      //创建一个显式的 Intent 对象(方法二:用 setClass 方法)13      Intent intent = new Intent();14      Bundle bundle = new Bundle();15      bundle.putString(“id”, strID);16      intent.setClass(Intent_Demo1.this, Intent_Demo1_Result1.class);17      intent.putExtras(bundle);18      startActivity(intent);19      20      //创建一个显式的 Intent 对象(方法三:用 setClass 方法)21      Intent intent = new Intent();22      Bundle bundle = new Bundle();23      bundle.putString(“id”, strID);24      intent.setClassName(Intent_Demo1.this, “com.great.activity_intent.Intent_Demo1_Result1”);25      intent.putExtras(bundle);26      startActivity(intent);27      28      //创建一个显式的 Intent 对象(方法四:用 setComponent 方法)29      Intent intent = new Intent();30      Bundle bundle = new Bundle();31      bundle.putString(“id”, strID);32      //setComponent方法的参数:ComponentName33      intent.setComponent(new ComponentName(Intent_Demo1.this, Intent_Demo1_Result1.class));34      intent.putExtras(bundle);35      startActivity(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      */ 7     Intent intent = new Intent(); 8     //设置 Intent 的动作 9     intent.setAction(“com.great.activity_intent.Intent_Demo1_Result3”);10     Bundle bundle = new Bundle();11     bundle.putString(“id”, strID);12     intent.putExtras(bundle);13     startActivity(intent); AndroidManifest.xml  1    <activity android:name=”Intent_Demo1_Result3″2                   android: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 方法设置 Type11 //intent.setType(“text/plain”);12 13 /**14  * 不指定 Category 或 只指定 AndroidManifest.xml 文件中 <intent-filter> 标签中配置的任意一个 Category15  * <category android:name=”android.intent.category.DEFAULT” /> 除外,就可以访问该 Activity16  */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″ 2                   android:label=”Intent_Demo1_Result2″> 3             <intent-filter> 4                 <category android:name=”android.intent.category.DEFAULT” /> 5                 <data  6                     android:scheme=”http” 7                     android:host=”www.great.org” 8                     android:port=”8080″ 9                     android:pathPattern=”.*pdf”10                     android: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);

相关推荐
python开发_常用的python模块及安装方法
adodb:我们领导推荐的数据库连接组件bsddb3:BerkeleyDB的连接组件Cheetah-1.0:我比较喜欢这个版本的cheeta…
日期:2022-11-24 点赞:878 阅读:9,082
Educational Codeforces Round 11 C. Hard Process 二分
C. Hard Process题目连接:http://www.codeforces.com/contest/660/problem/CDes…
日期:2022-11-24 点赞:807 阅读:5,556
下载Ubuntn 17.04 内核源代码
zengkefu@server1:/usr/src$ uname -aLinux server1 4.10.0-19-generic #21…
日期:2022-11-24 点赞:569 阅读:6,405
可用Active Desktop Calendar V7.86 注册码序列号
可用Active Desktop Calendar V7.86 注册码序列号Name: www.greendown.cn Code: &nb…
日期:2022-11-24 点赞:733 阅读:6,179
Android调用系统相机、自定义相机、处理大图片
Android调用系统相机和自定义相机实例本博文主要是介绍了android上使用相机进行拍照并显示的两种方式,并且由于涉及到要把拍到的照片显…
日期:2022-11-24 点赞:512 阅读:7,815
Struts的使用
一、Struts2的获取  Struts的官方网站为:http://struts.apache.org/  下载完Struts2的jar包,…
日期:2022-11-24 点赞:671 阅读:4,898