欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Android 標(biāo)準(zhǔn)Intent的使用詳解

 更新時(shí)間:2017年03月09日 09:33:21   投稿:lqh  
這篇文章主要介紹了Android 標(biāo)準(zhǔn)Intent的使用詳解的相關(guān)資料,需要的朋友可以參考下

一 Android系統(tǒng)用于Activity的標(biāo)準(zhǔn)Intent

1 根據(jù)聯(lián)系人ID顯示聯(lián)系人信息

Intent intent = new Intent(); 
intent.setAction(Intent.ACTION_VIEW);  //顯示聯(lián)系人信息 
intent.setData(Uri.parse("content://contacts/people/492")); 
startActivity(intent); 

2 根據(jù)聯(lián)系人ID顯示撥號(hào)面板

Intent intent = new Intent(); 
intent.setAction(Intent.ACTION_DIAL); //顯示撥號(hào)面板 
intent.setData(Uri.parse("content://contacts/people/492")); 
startActivity(intent); 

3 顯示撥號(hào)面板, 并在撥號(hào)面板上將號(hào)碼顯示出來(lái)

Intent intent = new Intent(); 
intent.setAction(Intent.ACTION_VIEW);   
intent.setData(Uri.parse("tel://15216448315")); 
startActivity(intent); 

4 顯示撥號(hào)面板, 并在撥號(hào)面板上將號(hào)碼顯示出來(lái)

Intent intent = new Intent(); 
intent.setAction(Intent.ACTION_DIAL);  //顯示撥號(hào)面板, 并在撥號(hào)面板上將號(hào)碼顯示出來(lái) 
intent.setData(Uri.parse("tel://15216448315")); 
startActivity(intent); 

5 根據(jù)聯(lián)系人的ID編輯聯(lián)系人

Intent intent = new Intent(); 
intent.setAction(Intent.ACTION_EDIT);  //編輯聯(lián)系人 
intent.setData(Uri.parse("content://contacts/people/492")); 
startActivity(intent); 

6 顯示通訊錄聯(lián)系人和其他賬號(hào)聯(lián)系人的列表

Intent intent = new Intent(); 
intent.setAction(Intent.ACTION_VIEW);   
intent.setData(Uri.parse("content://contacts/people/")); 
startActivity(intent); 

7 啟動(dòng)HomeScreen

Intent intent = new Intent(); 
intent.setAction(Intent.ACTION_MAIN);   //啟動(dòng)HomeScreen 
intent.addCategory(Intent.CATEGORY_HOME); 
startActivity(intent); 

8 選擇某個(gè)聯(lián)系人的號(hào)碼,返回一個(gè)代表這個(gè)號(hào)碼的uri,如:content://contacts/phones/982

Intent intent = new Intent(); 
intent.setAction(Intent.ACTION_GET_CONTENT);    
intent.setType("vnd.android.cursor.item/phone"); 
startActivityForResult(intent, 1); 

9  打開多個(gè)應(yīng)用選取各種類型的數(shù)據(jù),以u(píng)ri返回。返回的uri可使用ContentResolver.openInputStream(Uri)打開

    該功能可用在郵件中附件的選取

    舉例如下:

    選取一張圖片, 返回的uri為 content://media/external/images/media/47
    選取一首歌, 返回的uri為 content://media/external/audio/media/51

Intent intent = new Intent(); 
intent.setAction(Intent.ACTION_GET_CONTENT);    
intent.setType("*/*"); 
intent.addCategory(Intent.CATEGORY_OPENABLE); 
startActivityForResult(intent, 2); 

10 自定義一個(gè)chooser,不使用系統(tǒng)的chooser

     該chooser可以有自己的標(biāo)題(Title)

     并且不必讓用戶指定偏好

Intent intent = new Intent(); 
intent.setAction(Intent.ACTION_CHOOSER);  
intent.putExtra(Intent.EXTRA_TITLE, "my chooser"); 
intent.putExtra(Intent.EXTRA_INTENT,  
    new Intent(Intent.ACTION_GET_CONTENT) 
    .setType("*/*") 
    .addCategory(Intent.CATEGORY_OPENABLE) 
    ); 
 
startActivityForResult(intent, 2); 

11 選取activity,返回的activity可在返回的intent.getComponent()中得到

Intent intent = new Intent(); 
intent.setAction(Intent.ACTION_PICK_ACTIVITY);  
intent.putExtra( Intent.EXTRA_INTENT,  
    new Intent(Intent.ACTION_GET_CONTENT) 
    .setType("*/*") 
    .addCategory(Intent.CATEGORY_OPENABLE) 
    ); 
startActivityForResult(intent, 3); 

12 啟動(dòng)搜索,在以下示例代碼中,"ANDROID"為要搜索的字符串

     當(dāng)執(zhí)行這段代碼后, 會(huì)在系統(tǒng)的Chooser中顯示可以用于搜索的程序列表

Intent intent = new Intent(); 
intent.setAction(Intent.ACTION_SEARCH);   //啟動(dòng)搜索 
intent.putExtra(SearchManager.QUERY, "ANDROID"); 
startActivity(intent); 

13 啟動(dòng)WEB搜索,在以下示例代碼中,"ANDROID"為要搜索的字符串

     當(dāng)執(zhí)行這段代碼后, 會(huì)在系統(tǒng)的Chooser中顯示可以用于搜索的程序列表,一般情況下系統(tǒng)中安裝的瀏覽器都會(huì)顯示出來(lái)

Intent intent = new Intent(); 
intent.setAction(Intent.ACTION_WEB_SEARCH);   //啟動(dòng)搜索 
intent.putExtra(SearchManager.QUERY, "ANDROID"); 
startActivity(intent); 

二  Android系統(tǒng)用于BroadcastReceiver的標(biāo)準(zhǔn)Intent

1 ACTION_TIME_TICK,系統(tǒng)時(shí)鐘廣播,系統(tǒng)每分鐘都會(huì)發(fā)送一個(gè)這樣的廣播,  如果在應(yīng)用開發(fā)中,有些邏輯依賴于系統(tǒng)時(shí)鐘,可以注冊(cè)一個(gè)廣播接收者   這是一個(gè)受保護(hù)的action,只有系統(tǒng)才能發(fā)送這個(gè)廣播   并且,在manifest文件中注冊(cè)的廣播接收者不能接收到該廣播,若要接收該廣播,必須在代碼中注冊(cè)廣播接收者

registerReceiver(new BroadcastReceiver(){ 
 
  @Override 
  public void onReceive(Context context, Intent intent) { 
    Log.i("xxxx", "TIME_TICK"); 
  } 
   
},  
new IntentFilter(Intent.ACTION_TIME_TICK)); 

2 在官方文檔中,列出了以下標(biāo)準(zhǔn)的廣播action

  1. ACTION_TIME_TICK               系統(tǒng)時(shí)鐘廣播
  2. ACTION_TIME_CHANGED            時(shí)間被重新設(shè)置
  3. ACTION_TIMEZONE_CHANGED        時(shí)區(qū)改變
  4. ACTION_BOOT_COMPLETED          系統(tǒng)啟動(dòng)完成
  5. ACTION_PACKAGE_ADDED           系統(tǒng)中安裝了新的應(yīng)用
  6. ACTION_PACKAGE_CHANGED         系統(tǒng)中已存在的app包被更改
  7. ACTION_PACKAGE_REMOVED         系統(tǒng)中已存在的app被移除
  8. ACTION_PACKAGE_RESTARTED       用戶重啟了一個(gè)app,這個(gè)app的所有進(jìn)程被殺死
  9. ACTION_PACKAGE_DATA_CLEARED    用戶清除了一個(gè)app的數(shù)據(jù)
  10. ACTION_UID_REMOVED             系統(tǒng)中的一個(gè)user ID被移除
  11. ACTION_BATTERY_CHANGED         電池狀態(tài)改變,這是一個(gè)sticky廣播
  12. ACTION_POWER_CONNECTED         設(shè)備連接了外部電源
  13. ACTION_POWER_DISCONNECTED      外部電源被移除
  14. ACTION_SHUTDOWN                設(shè)備正在關(guān)機(jī)

三  Android中的標(biāo)準(zhǔn)類別(category)

類別(category)一般配合action使用,以下為系統(tǒng)中的標(biāo)準(zhǔn)類別,由于數(shù)量過多,只能在使用到時(shí)再詳細(xì)研究

  1. CATEGORY_DEFAULT
  2. CATEGORY_BROWSABLE
  3. CATEGORY_TAB
  4. CATEGORY_ALTERNATIVE
  5. CATEGORY_SELECTED_ALTERNATIVE
  6. CATEGORY_LAUNCHER
  7. CATEGORY_INFO
  8. CATEGORY_HOME
  9. CATEGORY_PREFERENCE
  10. CATEGORY_TEST
  11. CATEGORY_CAR_DOCK
  12. CATEGORY_DESK_DOCK
  13. CATEGORY_LE_DESK_DOCK
  14. CATEGORY_HE_DESK_DOCK
  15. CATEGORY_CAR_MODE
  16. CATEGORY_APP_MARKET

四  Android中的標(biāo)準(zhǔn)Extra鍵值

這些常量用于在調(diào)用Intent.putExtra(String, Bundle)時(shí)作為鍵值傳遞數(shù)據(jù),同樣由于數(shù)量較多,在此只列出索引

  1. EXTRA_ALARM_COUNT
  2. EXTRA_BCC
  3. EXTRA_CC
  4. EXTRA_CHANGED_COMPONENT_NAME
  5. EXTRA_DATA_REMOVED
  6. EXTRA_DOCK_STATE
  7. EXTRA_DOCK_STATE_HE_DESK
  8. EXTRA_DOCK_STATE_LE_DESK
  9. EXTRA_DOCK_STATE_CAR
  10. EXTRA_DOCK_STATE_DESK
  11. EXTRA_DOCK_STATE_UNDOCKED
  12. EXTRA_DONT_KILL_APP
  13. EXTRA_EMAIL
  14. EXTRA_INITIAL_INTENTS
  15. EXTRA_INTENT
  16. EXTRA_KEY_EVENT
  17. EXTRA_ORIGINATING_URI
  18. EXTRA_PHONE_NUMBER
  19. EXTRA_REFERRER
  20. EXTRA_REMOTE_INTENT_TOKEN
  21. EXTRA_REPLACING
  22. EXTRA_SHORTCUT_ICON
  23. EXTRA_SHORTCUT_ICON_RESOURCE
  24. EXTRA_SHORTCUT_INTENT
  25. EXTRA_STREAM
  26. EXTRA_SHORTCUT_NAME
  27. EXTRA_SUBJECT
  28. EXTRA_TEMPLATE
  29. EXTRA_TEXT
  30. EXTRA_TITLE
  31. EXTRA_UID

五  Intent中的標(biāo)志(FLAG)

Intent類中定義了一些以FLAG_開頭的標(biāo)志位,這些標(biāo)志位中有的非常重要,會(huì)影響app中Activity和BroadcastReceiver等的行為。

以下為這些標(biāo)志位的索引,是從官方文檔上的截圖。之后會(huì)對(duì)重要的標(biāo)志加以詳細(xì)分析


感謝閱讀,希望能幫助到大家,謝謝大家對(duì)本站的支持!

相關(guān)文章

最新評(píng)論