Intent(意圖)主要是解決Android應用的各項組件之間的通訊
Intent負責對應用中一次操作的動作、動作涉及數據、附加數據進行描述,Android則根據此Intent的描述,負責找到對應的組件,將 Intent傳遞給調用的組件,並完成組件的調用。
因此,Intent在這裡起著一個媒體中介的作用,專門提供組件互相調用的相關信息,實現調用者與被調用者之間的聯繫。
例如,在一個聯繫人維護的應用中,當我們在一個聯繫人列表屏幕(假設對應的Activity為listActivity)上,點擊某個聯繫人後,希望能夠跳出此聯繫人的詳細信息屏幕(假設對應的Activity為detailActivity)為了實現這個目的,listActivity需要構造一個
Intent,這個Intent用於告訴系統,我們要做「查看」動作,此動作對應的查看對象是「某聯繫人」,然後調用startActivity
(Intent
intent),將構造的Intent傳入,系統會根據此Intent中的描述,到ManiFest中找到滿足此Intent要求的Activity,系統會調用找到的
Activity,即為detailActivity,最終傳入Intent,detailActivity則會根據此Intent中的描述,執行相應的
操作。
Intent顯示網頁
Uri uri = Uri.parse("http://google.com");
Intent it = new Intent(Intent.ACTION_VIEW, uri);
startActivity(it);
Intent顯示地圖
Uri uri = Uri.parse("geo:38.299533,-77.036476");
Intent it = new Intent(Intent.ACTION_VIEW, uri);
startActivity(it);
Intent打電話
叫出撥號程序
Uri uri = Uri.parse("tel:0800000123");
Intent it = new Intent(Intent.ACTION_DIAL, uri);
startActivity(it);
直接打電話出去
Uri uri = Uri.parse("tel:0800000123");
Intent it = new Intent(Intent.ACTION_CALL, uri);
startActivity(it);
Intent傳送SMS/MMS
啟用簡訊程式
Intent it = new Intent(Intent.ACTION_VIEW);
it.putExtra("sms_body", "The SMS text");
it.setType("vnd.android-dir/mms-sms");
startActivity(it);
直接傳送簡訊
Uri uri = Uri.parse("smsto:0800000123");
Intent it = new Intent(Intent.ACTION_SENDTO, uri);
it.putExtra("sms_body", "The SMS text");
startActivity(it);
Intent傳送 Email
Uri uri = Uri.parse("mailto:xxx@abc.com");
Intent it = new Intent(Intent.ACTION_SENDTO, uri);
startActivity(it);
Intent播放多媒體
Uri uri = Uri.parse("file:///sdcard/song.mp3");
Intent it = new Intent(Intent.ACTION_VIEW, uri);
it.setType("audio/mp3");
startActivity(it);
Intent Uninstall移除應用程序
Uri uri = Uri.fromParts("package", strPackageName, null);
Intent it = new Intent(Intent.ACTION_DELETE, uri);
startActivity(it);
![[Android app開發基本概念] Intent用法大全教學 [Android app開發基本概念] Intent用法大全教學](https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjARgu7s9DMZrPb4RXKgFP5AHFTq1lJePbroDjpKQJDeOkxk1IYxltdWBB5vHjkzHNVx1xNEV1sz0MJwDwwDnBT-f1FcIAw2fhx7DClUZyzHN59XrqPTnQZGgAOS3tXup8OrwU3Xhgvo9E/s1600/android101.jpg)
沒有留言 :
張貼留言