`
XiangdongLee
  • 浏览: 92833 次
  • 性别: Icon_minigender_1
  • 来自: 长沙
社区版块
存档分类
最新评论

【攻克Android (10)】Intent意图

阅读更多
本文围绕以下两个部分展开:

一、意图
二、两个案例
        1. 拨打电话、发送Email、提取图片
        2. 显式意图传递和隐式意图传递






一、意图

        1. 意图

        意图是组件间传递消息的一种对象,主要由动作(action)和数据(data)两部分组成,实现了组件之间的解耦。

        它用于请求其他组件(活动、服务、广播接收器)中的操作,完成组件之间的交互。

        2. 意图在应用框架中的位置

        Android 应用框架让你使用一组可重用的基本组件即可创建出丰富而有创意的应用程序。

        虽然每个组件是一个独立的存在,扮演特定的角色,但是部分组件之间存在依赖关系,应用框架使用意图(Intent)将组件连接起来,共同构成一个程序的整体行为。

        3. 意图的三种应用场景



        4. 意图的两种类型





        5. 意图的结构










二、两个案例

        1. 拨打电话、发送Email、提取图片



        (1)核心功能模块

        模块1:通过输入电话号码,点击“拨打”按钮,转到手机拨号界面,或者调用手机拨号程序,直接拨打出去。

 /** 
      * 拨打电话 
      */  
     private void doDial() {  
         String phone = txtPhone.getText().toString();  
   
         Intent intent = new Intent();  
   
         //指定意图的动作:拨号  
         //intent.setAction(Intent.ACTION_DIAL);  
         intent.setAction(Intent.ACTION_CALL);  
   
         //指定意图的数据(注意数据格式:打电话必须是这样的格式。)  
         Uri data = Uri.parse("tel:"+phone);  
         intent.setData(data);  
   
         //隐式启动意图 (没有写跳到哪个界面,因此拨号的时候,就隐式跳到拨打电话页面了。)  
         startActivity(intent);  
     }


        说明:

        (1)点击“拨打”按钮,转到手机拨号界面——直接在doDial()方法中使用这句话:

intent.setAction(Intent.ACTION_DIAL);


        (2)点击“拨打”按钮,调用手机拨号程序,直接拨打出去——需要授予权限才可以。

        首先,在功能清单文件中添加授权语句:

	<!--授权此App访问拨号程序-->  
    <uses-permission android:name="android.permission.CALL_PHONE"/>


        AndroidManifest.xml 代码如下:

 <?xml version="1.0" encoding="utf-8"?>  
 <manifest xmlns:android="http://schemas.android.com/apk/res/android"  
     package="com.xiangdong.intent" >  
   
     <!--授权此App访问拨号程序-->  
     <uses-permission android:name="android.permission.CALL_PHONE"/>  
   
     <application  
         android:allowBackup="true"  
         android:icon="@mipmap/ic_launcher"  
         android:label="@string/app_name"  
         android:theme="@style/AppTheme" >  
         <activity  
             android:name=".MainActivity"  
             android:label="@string/app_name" >  
             <intent-filter>  
                 <action android:name="android.intent.action.MAIN" />  
   
                 <category android:name="android.intent.category.LAUNCHER" />  
             </intent-filter>  
         </activity>  
     </application>  
   
 </manifest>


        然后,在doDial()方法中使用这句话:

intent.setAction(Intent.ACTION_CALL);


        效果如下:





        (由于本人的手机没有SIM卡,因此拨不出去)


        模块2:点击“发送EMAIL”按钮,调用手机默认邮箱客户端,进入将要发送邮件的编辑界面。

	/** 
     * 发送Email 
     */  
    private void doSendTo() {  
        Intent intent = new Intent();  
        //指定意图的动作:发送信息  
        intent.setAction(Intent.ACTION_SENDTO);  
  
        //指定意图的数据(注意数据格式:发送邮件必须是这样的格式。)  
        Uri data = Uri.parse("mailto:lxd12103@126.com");  
        intent.setData(data);  
  
        //附件信息  
        //邮件主题  
        intent.putExtra(Intent.EXTRA_SUBJECT,"Hello");  
        //邮件内容  
        intent.putExtra(Intent.EXTRA_TEXT,"Just do it.");  
  
        //启动意图  
        startActivity(intent);  
    }


        效果如下:




        模块3:点击“从相册选择一张图片”按钮,弹出手机图库,然后选择一张图片,选好后,返回到主界面,将图片显示到下面。

 /** 
      * 从图库选择并取回一张图片 
      */  
     private void doPick() {  
         Intent intent = new Intent();  
   
         //指定动作,选取数据  
         intent.setAction(Intent.ACTION_PICK);  
   
         //统一资源标识符【外部存储中的图片】  
         Uri data = MediaStore.Images.Media.EXTERNAL_CONTENT_URI;  
         String type = "image/*";  
   
         //指定数据及类型【注意:若要同时指定data和type,必须使用该方法】  
         intent.setDataAndType(data,type);  
   
         //启动活动并返回结果  
         //第二个参数 REQUEST_PICK_PIC 是一个自定义的整型变量,  
         //标识请求代号(必须唯一)  
         startActivityForResult(intent,REQUEST_PICK_PIC);  
     }  
   
     /**  
      * 调用 startActivityForResult 后,会回调该方法,所以重写该方法  
      *  
      * @param requestCode 请求码:匹配 startActivityForResult 中的第二个参数  
      * @param resultCode  结果码:系统提供了两个默认值 RESULT_OK、RESULT_CANCEL  
      * @param data        返回的数据:uri 类型  
      */  
     @Override  
     protected void onActivityResult(int requestCode, int resultCode, Intent data) {  
         super.onActivityResult(requestCode, resultCode, data);  
   
         if(requestCode == REQUEST_PICK_PIC){  
             if(resultCode == RESULT_OK){  
                 // 获得返回的数据:图片的 Uri  
                 Uri uri = data.getData();  
   
                 // 在 ImageView 上显示图片  
                 imageView.setImageURI(uri);  
             } else{  
                 // RESULT_CANCEL  
                 Toast.makeText(this,getString(R.string.cancel_pick),Toast.LENGTH_SHORT).show();  
             }  
         }  
     }



        (2)项目代码

        A. 在 strings.xml 中定义字符串

 <resources>  
   <string name="app_name">Intent</string>  
   
   <string name="action_settings">Settings</string>  
   
   <string name="phone_hint">请输入手机号码</string>  
   <string name="btn_dial">拨打</string>  
   <string name="btn_send_to">发送Email</string>  
   <string name="btn_pick">从相册选一张图片</string>  
   <string name="cancel_pick">操作取消</string>  
 </resources>


        B. 在 activity_main.xml 中写主界面布局

 <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"  
                 xmlns:tools="http://schemas.android.com/tools"  
                 android:layout_width="match_parent"  
                 android:layout_height="match_parent"  
                 android:paddingLeft="@dimen/activity_horizontal_margin"  
                 android:paddingRight="@dimen/activity_horizontal_margin"  
                 android:paddingTop="@dimen/activity_vertical_margin"  
                 android:paddingBottom="@dimen/activity_vertical_margin"  
                 tools:context=".MainActivity">  
   
   <EditText  
       android:id="@+id/txtPhone"  
       android:layout_width="match_parent"  
       android:layout_height="wrap_content"  
       android:hint="@string/phone_hint"  
       android:inputType="phone"/>  
   
   <Button  
       android:id="@+id/btnDial"  
       android:layout_width="match_parent"  
       android:layout_height="wrap_content"  
       android:layout_below="@+id/txtPhone"  
       android:onClick="onClick"  
       android:text="@string/btn_dial"/>  
   
   <Button  
       android:id="@+id/btnSendTo"  
       android:layout_width="match_parent"  
       android:layout_height="wrap_content"  
       android:layout_below="@+id/btnDial"  
       android:onClick="onClick"  
       android:text="@string/btn_send_to"/>  
   
   <Button  
       android:id="@+id/btnPick"  
       android:layout_width="match_parent"  
       android:layout_height="wrap_content"  
       android:layout_below="@+id/btnSendTo"  
       android:onClick="onClick"  
       android:text="@string/btn_pick"/>  
   
   <ImageView  
       android:id="@+id/imageView"  
       android:layout_width="200dp"  
       android:layout_height="300dp"  
       android:layout_below="@+id/btnPick"  
       android:layout_centerHorizontal="true"/>  
   
 </RelativeLayout>


        C. 在 MainActivity 中写事件

 package com.xiangdong.intent;  
   
 import android.app.Activity;  
 import android.content.Intent;  
 import android.net.Uri;  
 import android.os.Bundle;  
 import android.provider.MediaStore;  
 import android.view.Menu;  
 import android.view.MenuItem;  
 import android.view.View;  
 import android.widget.EditText;  
 import android.widget.ImageView;  
 import android.widget.Toast;  
   
   
 public class MainActivity extends Activity {  
   
     private static final int REQUEST_PICK_PIC = 200;  
     private EditText txtPhone;  
     private ImageView imageView;  
   
     @Override  
     protected void onCreate(Bundle savedInstanceState) {  
         super.onCreate(savedInstanceState);  
         setContentView(R.layout.activity_main);  
   
         txtPhone = (EditText) findViewById(R.id.txtPhone);  
         imageView = (ImageView) findViewById(R.id.imageView);  
     }  
   
     /** 
      * 按钮事件 
      * @param view 
      */  
     public void onClick(View view){  
         switch (view.getId()){  
             case R.id.btnDial:  
                 //这些方法只在当前页面有效,因此可定义为私有的。  
                 doDial();  
                 break;  
             case R.id.btnSendTo:  
                 doSendTo();  
                 break;  
             case R.id.btnPick:  
                 doPick();  
                 break;  
         }  
     }  
   
     /** 
      * 拨打电话 
      */  
     private void doDial() {  
         String phone = txtPhone.getText().toString();  
   
         Intent intent = new Intent();  
   
         //指定意图的动作:拨号  
         //intent.setAction(Intent.ACTION_DIAL);  
         intent.setAction(Intent.ACTION_CALL);  
   
         //指定意图的数据(注意数据格式:打电话必须是这样的格式。)  
         Uri data = Uri.parse("tel:"+phone);  
         intent.setData(data);  
   
         //隐式启动意图 (没有写跳到哪个界面,因此拨号的时候,就隐式跳到拨打电话页面了。)  
         startActivity(intent);  
     }  
   
     /** 
      * 发送Email 
      */  
     private void doSendTo() {  
         Intent intent = new Intent();  
         //指定意图的动作:发送信息  
         intent.setAction(Intent.ACTION_SENDTO);  
   
         //指定意图的数据(注意数据格式:发送邮件必须是这样的格式。)  
         Uri data = Uri.parse("mailto:lxd12103@126.com");  
         intent.setData(data);  
   
         //附件信息  
         //邮件主题  
         intent.putExtra(Intent.EXTRA_SUBJECT,"Hello");  
         //邮件内容  
         intent.putExtra(Intent.EXTRA_TEXT,"Just do it.");  
   
         //启动意图  
         startActivity(intent);  
     }  
   
     /** 
      * 从图库选择并取回一张图片 
      */  
     private void doPick() {  
         Intent intent = new Intent();  
   
         //指定动作,选取数据  
         intent.setAction(Intent.ACTION_PICK);  
   
         //统一资源标识符【外部存储中的图片】  
         Uri data = MediaStore.Images.Media.EXTERNAL_CONTENT_URI;  
         String type = "image/*";  
   
         //指定数据及类型【注意:若要同时指定data和type,必须使用该方法】  
         intent.setDataAndType(data,type);  
   
         //启动活动并返回结果  
         //第二个参数 REQUEST_PICK_PIC 是一个自定义的整型变量,  
         //标识请求代号(必须唯一)  
         startActivityForResult(intent,REQUEST_PICK_PIC);  
     }  
   
     /**  
      * 调用 startActivityForResult 后,会回调该方法,所以重写该方法  
      *  
      * @param requestCode 请求码:匹配 startActivityForResult 中的第二个参数  
      * @param resultCode  结果码:系统提供了两个默认值 RESULT_OK、RESULT_CANCEL  
      * @param data        返回的数据:uri 类型  
      */  
     @Override  
     protected void onActivityResult(int requestCode, int resultCode, Intent data) {  
         super.onActivityResult(requestCode, resultCode, data);  
   
         if(requestCode == REQUEST_PICK_PIC){  
             if(resultCode == RESULT_OK){  
                 // 获得返回的数据:图片的 Uri  
                 Uri uri = data.getData();  
   
                 // 在 ImageView 上显示图片  
                 imageView.setImageURI(uri);  
             } else{  
                 // RESULT_CANCEL  
                 Toast.makeText(this,getString(R.string.cancel_pick),Toast.LENGTH_SHORT).show();  
             }  
         }  
     }  
   
     // -----以下代码不做更改------------------------------------------------------------  
     @Override  
     public boolean onCreateOptionsMenu(Menu menu) {  
         // Inflate the menu; this adds items to the action bar if it is present.  
         getMenuInflater().inflate(R.menu.menu_main, menu);  
         return true;  
     }  
   
     @Override  
     public boolean onOptionsItemSelected(MenuItem item) {  
         // Handle action bar item clicks here. The action bar will  
         // automatically handle clicks on the Home/Up button, so long  
         // as you specify a parent activity in AndroidManifest.xml.  
         int id = item.getItemId();  
   
         //noinspection SimplifiableIfStatement  
         if (id == R.id.action_settings) {  
             return true;  
         }  
   
         return super.onOptionsItemSelected(item);  
     }  
 }



        2. 显式意图传递和隐式意图传递



        输入要传递的字符:



        点击“显式意图传递”和“隐式意图传递”按钮,都出现如下效果:



        (1)核心功能模块

        模块1:显式意图传递。

	 /** 
      * 显式意图传递 
      */  
     private void doShow() {  
         String content = txtContent.getText().toString();  
         // 清空里面的值  
         txtContent.setText("");  
   
         // 设置显式跳转的页面  
         //Intent intent = new Intent(this,IntentActivity.class);  
         //getApplicationContext() 获得当前界面的上下文 (和 this是一样的)  
         Intent intent = new Intent(getApplicationContext(), IntentActivity.class);  
   
         // 设置附加信息(键值对格式)  
         intent.putExtra("KEY_CONTENT",content);  
   
         startActivity(intent);  
     }


        补充:设置显式跳转页面的方法:
        (1)

Intent intent = new Intent(this, IntentActivity.class);


        (2)

Intent intent = new Intent(getApplicationContext(), IntentActivity.class);


        (3)

 Intent intent = new Intent();  
 intent.setClass(this, IntentActivity.class);


        (4)

 Intent intent = new Intent();  
 intent.setClass(getApplicationContext(), IntentActivity.class);



        模块2:隐式意图传递。

	 /** 
      * 隐式意图传递 
      */  
     private void doHidden() {  
         String content = txtContent.getText().toString();  
         // 清空里面的值  
         txtContent.setText("");  
 
         // 设置隐式跳转的页面  
         // 设置意图的动作名  
         // com.lxd.intent.SHOW_HIDDEN 是在意图过滤器中定义的字符串  
         Intent intent = new Intent();  
         intent.setAction("com.lxd.intent.action.SHOW_HIDDEN");  
   
         // 设置附加信息(键值对格式)  
         intent.putExtra("KEY_CONTENT",content);  
   
         startActivity(intent);  
     }


        在设置意图的动作名之后,要在功能清单文件中创建意图过滤器,这样,当运行设置隐式跳转页面的代码的时候,程序会在功能清单文件中找意图过滤器,进行跳转。

        功能清单文件 AndroidManifest.xml 如下:

 <?xml version="1.0" encoding="utf-8"?>  
 <manifest xmlns:android="http://schemas.android.com/apk/res/android"  
           package="com.xiangdong.intenttwo">  
   
   <application  
       android:allowBackup="true"  
       android:icon="@mipmap/ic_launcher"  
       android:label="@string/app_name"  
       android:theme="@style/AppTheme">  
     <activity  
         android:name=".MainActivity"  
         android:label="@string/app_name">  
       <intent-filter>  
         <action android:name="android.intent.action.MAIN"/>  
   
         <category android:name="android.intent.category.LAUNCHER"/>  
       </intent-filter>  
     </activity>  
             
     <activity  
         android:name=".IntentActivity"  
         android:label="@string/title_activity_intent"  
         android:parentActivityName=".MainActivity">  
       <intent-filter>  
   
         <!-- 设置隐式意图的动作名(自定义) -->  
         <action android:name="com.lxd.intent.action.SHOW_HIDDEN"/>  
         <!-- 设置意图的类型 -->  
         <category android:name="android.intent.category.DEFAULT"/>  
       </intent-filter>  
     </activity>  
             
   </application>  
   
 </manifest>



        (2)项目代码

        A. 在 strings.xml 中定义字符串

 <resources>  
   <string name="app_name">显式意图传递/隐式意图传递</string>  
   
   <string name="action_settings">Settings</string>  
   
   <string name="content">请输入要传递的数据</string>  
   <string name="btn_show">显式意图传递</string>  
   <string name="btn_hidden">隐式意图传递</string>  
   <string name="title_activity_intent">接收意图参数</string>  
   
   <string name="hello_world">Hello world!</string>  
   <string name="title_activity_share">ShareActivity</string>  
 </resources>


        B. 在 activity_main.xml 中写主界面布局

 <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"  
                 xmlns:tools="http://schemas.android.com/tools"  
                 android:layout_width="match_parent"  
                 android:layout_height="match_parent"  
                 android:paddingLeft="@dimen/activity_horizontal_margin"  
                 android:paddingRight="@dimen/activity_horizontal_margin"  
                 android:paddingTop="@dimen/activity_vertical_margin"  
                 android:paddingBottom="@dimen/activity_vertical_margin"  
                 tools:context=".MainActivity">  
   
   <EditText  
       android:id="@+id/txtContent"  
       android:layout_width="match_parent"  
       android:layout_height="wrap_content"  
       android:hint="@string/content"/>  
   
   <Button  
       android:id="@+id/btnShow"  
       android:layout_width="match_parent"  
       android:layout_height="wrap_content"  
       android:layout_below="@+id/txtContent"  
       android:onClick="onClick"  
       android:text="@string/btn_show"/>  
   
   <Button  
       android:id="@+id/btnHidden"  
       android:layout_width="match_parent"  
       android:layout_height="wrap_content"  
       android:layout_below="@+id/btnShow"  
       android:onClick="onClick"  
       android:text="@string/btn_hidden"/>  
   
 </RelativeLayout>


        C. 创建传递后的活动及页面:IntentActivity,其中 activity_intent.xml 做一点修改,如下:

 <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"  
                 xmlns:tools="http://schemas.android.com/tools"  
                 android:layout_width="match_parent"  
                 android:layout_height="match_parent"  
                 android:paddingLeft="@dimen/activity_horizontal_margin"  
                 android:paddingRight="@dimen/activity_horizontal_margin"  
                 android:paddingTop="@dimen/activity_vertical_margin"  
                 android:paddingBottom="@dimen/activity_vertical_margin"  
                 tools:context="com.xiangdong.intenttwo.IntentActivity">  
   
   <TextView  
       android:id="@+id/tvHello"  
       android:text="@string/hello_world"  
       android:layout_width="wrap_content"  
       android:layout_height="wrap_content"/>  
   
 </RelativeLayout>


        D. 在 MainActivity 中写事件

 package com.xiangdong.intenttwo;  
   
 import android.app.Activity;  
 import android.content.Intent;  
 import android.os.Bundle;  
 import android.view.Menu;  
 import android.view.MenuItem;  
 import android.view.View;  
 import android.widget.EditText;  
      
 public class MainActivity extends Activity {  
     private EditText txtContent;  
   
     @Override  
     protected void onCreate(Bundle savedInstanceState) {  
         super.onCreate(savedInstanceState);  
         setContentView(R.layout.activity_main);  
   
         txtContent = (EditText) findViewById(R.id.txtContent);  
     }  
   
     public void onClick(View view){  
         switch (view.getId()){  
             case R.id.btnShow:  
                 doShow();  
                 break;  
             case R.id.btnHidden:  
                 doHidden();  
                 break;  
         }  
     }  
   
     /** 
      * 显式意图传递 
      */  
     private void doShow() {  
         String content = txtContent.getText().toString();  
         // 清空里面的值  
         txtContent.setText("");  
   
         // 设置显式跳转的页面  
         //Intent intent = new Intent(this,IntentActivity.class);  
         //getApplicationContext() 获得当前界面的上下文 (和 this是一样的)  
         Intent intent = new Intent(getApplicationContext(), IntentActivity.class);  
   
         // 设置附加信息(键值对格式)  
         intent.putExtra("KEY_CONTENT",content);  
   
         startActivity(intent);  
     }  
   
     /** 
      * 隐式意图传递 
      */  
     private void doHidden() {  
         String content = txtContent.getText().toString();  
         // 清空里面的值  
         txtContent.setText("");  
   
         // 设置隐式跳转的页面  
         // 设置意图的动作名  
         // com.lxd.intent.SHOW_HIDDEN 是在意图过滤器中定义的字符串  
         Intent intent = new Intent();  
         intent.setAction("com.lxd.intent.action.SHOW_HIDDEN");  
   
         // 设置附加信息(键值对格式)  
         intent.putExtra("KEY_CONTENT",content);  
   
         startActivity(intent);  
     }  
   
     //-------以下代码不做修改-------------------------------------------------------------- 
     @Override  
     public boolean onCreateOptionsMenu(Menu menu) {  
         // Inflate the menu; this adds items to the action bar if it is present.  
         getMenuInflater().inflate(R.menu.menu_main, menu);  
         return true;  
     }  
   
     @Override  
     public boolean onOptionsItemSelected(MenuItem item) {  
         // Handle action bar item clicks here. The action bar will  
         // automatically handle clicks on the Home/Up button, so long  
         // as you specify a parent activity in AndroidManifest.xml.  
         int id = item.getItemId();  
   
         //noinspection SimplifiableIfStatement  
         if (id == R.id.action_settings) {  
             return true;  
         }  
   
         return super.onOptionsItemSelected(item);  
     }  
 }



        (3)一个活动,注册多个意图过滤器。

        功能清单文件 AndroidManifest.xml 如下:

 <?xml version="1.0" encoding="utf-8"?>  
 <manifest xmlns:android="http://schemas.android.com/apk/res/android"  
           package="com.xiangdong.intenttwo">  
   
   <application  
       android:allowBackup="true"  
       android:icon="@mipmap/ic_launcher"  
       android:label="@string/app_name"  
       android:theme="@style/AppTheme">  
     <activity  
         android:name=".MainActivity"  
         android:label="@string/app_name">  
       <intent-filter>  
         <action android:name="android.intent.action.MAIN"/>  
   
         <category android:name="android.intent.category.LAUNCHER"/>  
       </intent-filter>  
     </activity>  
       
     <activity  
         android:name=".ShareActivity"  
         android:label="@string/title_activity_share"  
         android:parentActivityName=".MainActivity">  
   
       <!--处理发送文本的动作-->  
       <intent-filter>  
         <action android:name="android.intent.action.SEND"/>  
         <data android:mimeType="text/plain"/>  
         <category android:name="android.intent.category.DEFAULT"/>  
       </intent-filter>  
   
       <!--处理发送一个或多个图片的动作-->  
       <intent-filter>  
         <action android:name="android.intent.action.SEND"/>  
         <action android:name="android.intent.action.SEND_MULTIPLE"/>  
   
         <data android:mimeType="image/*"/>  
         <category android:name="android.intent.category.DEFAULT"/>  
       </intent-filter>  
     </activity>  
   
   
   </application>  
   
 </manifest>
  • 大小: 153.8 KB
  • 大小: 279.5 KB
  • 大小: 234.6 KB
  • 大小: 247.4 KB
  • 大小: 233.1 KB
  • 大小: 257.1 KB
  • 大小: 309.8 KB
  • 大小: 30.2 KB
  • 大小: 29 KB
  • 大小: 78.3 KB
  • 大小: 19.9 KB
  • 大小: 13.3 KB
  • 大小: 13.3 KB
  • 大小: 9.9 KB
1
2
分享到:
评论

相关推荐

    Android的Intent实验

    Intent是一个意图对象,它表达了应用程序想要执行的动作,例如启动一个新的Activity或启动一个Service。Intent由两个主要部分组成:动作(Action)和数据(Data)。动作定义了要执行的操作,如ACTION_VIEW、ACTION_...

    Android利用Intent启动和关闭Activity

    【Android Intent 启动和关闭Activity】 在Android应用程序开发中,Intent是连接各个组件(如Activity、Service等)的关键桥梁,主要用于启动和关闭Activity。Intent不仅能够启动一个新的Activity,还能在Activity...

    android.intent.action.TIME_TICK

    3. 注册IntentFilter:为IntentFilter添加对应的ACTION,如"android.intent.action.TIME_TICK"、"android.intent.action.SCREEN_ON"和"android.intent.action.BATTERY_CHANGED"。 4. 不再需要时,记得在合适的位置...

    Android案例:拨打电话+发送短信。利用Intent意图

    在Android应用开发中,Intent是一种强大的机制,用于在组件之间传递消息并启动操作。本案例主要探讨如何利用Intent实现拨打电话和发送短信的功能。首先,我们需要理解Intent的基本概念。 Intent在Android系统中扮演...

    android Intent意图实现照片拍摄 Demo

    在Android应用开发中,Intent是一种强大的机制,用于在组件之间传递消息或启动其他操作。本教程将深入探讨如何使用Intent来实现系统调用相机拍摄照片的功能,并展示如何获取照片路径并将其显示在应用中。 首先,...

    android用于打开各种文件的intent.pdf

    Android 中使用 Intent 打开各种文件类型 Android 操作系统提供了 Intent 机制,允许应用程序之间进行交互和通信。Intent 是一个异步的消息机制,用于在应用程序之间请求或提供服务。通过使用 Intent,可以实现打开...

    Android通过Intent传递数据

    在Android应用开发中,Intent是一种强大的机制,用于在组件之间传递信息和启动操作。它扮演着应用程序内部通信的重要角色,特别是在活动(Activity)之间。"Android通过Intent传递数据"这一主题,涵盖了Intent的基本...

    Android: Intent意图 简单应用

    简单的页面跳转app

    Android中intent的使用

    Intent是一种意图声明,表达了应用程序想要执行的操作。在Android系统中,Intent分为显式Intent和隐式Intent两种类型。 1. 显式Intent:明确指定要启动的组件(Activity、Service等)的类名。这种Intent通常用于在...

    android Intent例子源码

    android Intent例子源码android Intent例子源码android Intent例子源码android Intent例子源码android Intent例子源码android Intent例子源码

    android 利用intent调用activity 简明精炼的例子

    在Android应用开发中,Intent是连接应用程序组件的重要桥梁,它用于启动新的Activity或者服务,以及在组件间传递数据。Intent可以分为显式Intent和隐式Intent。本篇将重点讲解如何利用Intent在Android中调用Activity...

    android中intent使用示例

    7. 意图过滤器(Intent Filter): 在AndroidManifest.xml中,我们可以为Activity或Service定义Intent Filter,以响应特定的隐式Intent。例如,为了响应上面的Web浏览Intent,我们可以在Activity声明中添加: ```...

    Android-Intent-数据存取-ContentProvider.doc

    "Android Intent 和 ContentProvider" Android Intent 是 Android 组件之间的信使,负责在 Android 三大核心组件(Activity、Service、Broadcast Receiver)之间传递信息。Intent 是一个将要执行的动作的抽象描述...

    Andriod接收广播的类

    恢复已经停止的更新下载。 'android.server.checkin.FOTA_RESTART' 通过 OTA 下载并安装操作系统更新。 'android.server.checkin.FOTA_UPDATE' 用户按下了'Media Button'。...'android.intent.action.PACKAGE_ADDED'

    Android开发Intent的传参页面跳转

    Intent是一种运行时的请求,用于表示应用的意图,如启动一个新的Activity或启动一个Service。Intent分为显式Intent和隐式Intent。显式Intent明确指定了要启动的目标组件(Activity或Service的全类名),而隐式Intent...

    Android7.0 Intent打开文件管理器 获取文件真实路径

    Android7.0 Intent打开文件管理器 获取文件真实路径。虽然网上很多demo,但是没有一个能够兼容所有Android机的,去网上学习了然后自己亲测过手机分别有Android7.0/6.0/4.3个版本。

    Android利用intent实现分享功能

    ### Android利用Intent实现分享功能详解 #### 概述 随着移动互联网的发展,用户越来越依赖于在不同的应用程序之间共享内容。为了满足这一需求,Android平台提供了多种解决方案,包括使用第三方库如友盟、ShareSDK...

    Android通过Intent跳转地图应用(百度地图、高德地图)

    在Android开发中,Intent是一种强大的工具,用于在不同的组件之间传递数据和启动操作。当我们需要在应用程序中调用外部应用,如地图应用,如百度地图或高德地图,Intent是实现这一功能的关键。本篇文章将深入讲解...

Global site tag (gtag.js) - Google Analytics