成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

Android的Intent機制實例講解

移動開發 Android
Intent是Android中簡單的消息傳遞框架。使用Intent,你可以在整個系統內廣播消息或者給特定的Activity或者服務來執行你的行為意圖。系統會決定那個(些)目標來執行適當的行為。本文用實例介紹了Intent的用法。

在Android應用程序框架中,有一個比較強大的事件處理機制——Intent(意圖)。Intent(意圖)的作用與事件(event)很像,但與傳統的事件處理有些差異。

傳統的事件處理,講究的是處理者(handler)的觸發,當事件發生時,便callback事件的處理者,或是直接將該事件傳送(forward)給應用程序,由應用程序決定處理方式。

在「Intent」這樣的事件處理觀念里,Android 試圖將事件解釋為「應用程序的意圖」或是「使用者的意圖」,并試著去解釋該意圖的目的,若 Android 系統本身能理解應用程序的意圖,便會自行去處理該意圖所應執行的工作。Android的做法是,在每一意圖(Intent)都帶有一個動作 (action),并根據不同的動作去行動。

下面是一個通過Intent實現一個自動撥號的例子:

建立一個android工程IntentDialer,編輯IntentDialer.java:

  1. package com.android;   
  2.    
  3. import android.app.Activity;   
  4. import android.content.Intent;   
  5. import android.net.Uri;   
  6. import android.os.Bundle;   
  7. import android.widget.Toast;   
  8.    
  9. public class IntentDialerActivity extends Activity {   
  10.     /** Called when the activity is first created. */   
  11.     @Override   
  12.     public void onCreate(Bundle savedInstanceState) {   
  13.         super.onCreate(savedInstanceState);   
  14.         setContentView(R.layout.main);   
  15.            
  16.         Intent dial = new Intent();   
  17.         dial.setAction("android.intent.action.CALL");   
  18.         dial.setData(Uri.parse("tel:13428720000"));   
  19.         startActivity(dial);   
  20.         Toast.makeText(this"calling to young 13428720000", Toast.LENGTH_LONG).show();   
  21.     }   
  22. }   

因為permission的關系,所以也要在AndroidManifest.xml里加上「CALL_PHONE」的權限。編輯AndroidManifest.xml:

  1. <?xml version="1.0" encoding="utf-8"?>   
  2. <manifest xmlns:android="http://schemas.android.com/apk/res/android"   
  3.     package="com.android"   
  4.     android:versionCode="1"   
  5.     android:versionName="1.0" >   
  6.    
  7.     <uses-sdk android:minSdkVersion="10" />   
  8.    
  9.     <application   
  10.         android:icon="@drawable/ic_launcher"   
  11.         android:label="@string/app_name" >   
  12.         <activity   
  13.             android:name=".IntentDialerActivity"   
  14.             android:label="@string/app_name" >   
  15.             <intent-filter>   
  16.                 <action android:name="android.intent.action.MAIN" />   
  17.    
  18.                 <category android:name="android.intent.category.LAUNCHER" />   
  19.             </intent-filter>   
  20.         </activity>   
  21.     </application>   
  22.     <uses-permission android:name="android.permission.CALL_PHONE" />   
  23.        
  24.    
  25. </manifest>   

這個例子相當簡單,但足以說明Intent的核心了。代碼說明:

先新建一個Intent對象:

  1. Intent dial = new Intent(); 

設定Intent的action為「android.intent.action.CALL」,這是一個內建的action:

  1. dial.setAction("android.intent.action.CALL"); 

內建action「CALL」需要附帶一筆資料,而資料的寫法是使用URI格式:

  1. dial.setData(Uri.parse("tel:XXXXX")); 

「CALL」是一個activity action,所以調用startActivity()將Intent送給框架:

  1. startActivity(dial);  

這個例子的概念并不難理解:送出一個帶有內建action的Intent給框架,因為action為CALL,所以框架會去啟動撥號activity并撥打電話。

程序運行結果:

責任編輯:徐川 來源: Linux社區
相關推薦

2014-07-15 10:16:02

AndroidIntent

2013-05-27 14:06:14

Android開發移動開發Intent機制

2013-03-28 09:07:37

Android開發Intent機制

2009-04-03 08:21:37

AndroidGoogle移動OS

2013-01-10 15:36:44

Android開發組件Intent

2010-01-25 16:52:22

Android Int

2009-06-17 13:57:54

java實例Reflection

2011-05-30 14:00:35

Android Activity Intent

2011-05-23 13:24:01

2011-04-01 09:04:09

RIP

2009-11-23 17:56:44

PHP緩存機制

2011-04-07 13:09:03

明文驗證

2009-11-23 20:16:17

PHP接口特性

2009-11-23 17:31:49

PHP時間戳

2010-06-03 18:22:38

Hadoop

2011-04-02 16:37:26

PAT

2010-09-14 17:20:57

2013-05-21 09:56:15

2009-11-23 14:44:22

PHP 5.0構造函數

2009-11-23 15:32:13

PHP獲取遠程URL
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 久久精品a级毛片 | 久久久久成人精品 | 日韩高清国产一区在线 | 亚洲第一在线 | 国产精品视频导航 | 成人精品一区亚洲午夜久久久 | 精品在线 | 久久精品国产一区二区电影 | 在线欧美视频 | 国产欧美日韩一区二区三区在线观看 | 国产日韩精品一区二区三区 | 亚洲人成在线观看 | 国产一区二区三区免费观看在线 | 精品国产乱码久久久久久久久 | 看一级毛片视频 | 亚洲一二三视频 | 欧美高清dvd | 国产情侣久久 | 视频二区| 成人午夜免费视频 | 99在线免费观看视频 | 精产国产伦理一二三区 | 成人小视频在线观看 | 91手机精品视频 | 日本精品一区 | 中文字幕在线免费 | 国产精品免费一区二区三区 | 美国一级黄色片 | 国产中文字幕在线 | 亚洲欧美日韩在线 | 久久精品国产99国产精品亚洲 | 精品日本久久久久久久久久 | av午夜激情 | 在线播放国产一区二区三区 | 成人午夜网站 | 欧美一区二区三区在线观看 | 亚洲www | 欧美一区二区三区在线视频 | 国产成人精品高清久久 | 日本久久一区二区三区 | 在线观看免费福利 |