一、定義
Intent是一種在不同組件之間傳遞的請求消息是應用程序發出的請求和意圖。作爲一個完整的消息傳遞機制,Intent不僅需要發送端,還需要接收端。
顯式Intent定義:對於明確指出了目標組件名稱的Intent,我們稱之爲顯式Intent。
隱式Intent定義:對於沒有明確指出目標組件名稱的Intent,則稱之爲隱式Intent。
啓動分爲:
1、A-->B 不需要B界面返回消息
startactivity(initent);
2、A-->B 需要B界面返回消息
startActivityForResult(intent, requestCode);
例子:
1、利用Intent在Activity之間傳遞數組
在Main中執行如下代碼:
1: Bundle bundle = new Bundle();//一般用intent傳遞數組和對象是藉助bundle
2: bundle.putStringArray("array", myarray);
3: Intent intent = new Intent(MainActivity.this, SecondActivity.class);
4: intent.putExtras(bundle);
5: startActivity(intent);
在SecondActivity中,代碼如下:
1: Bundle bundle = this.getIntent().getExtras();
2: String[] myarray= bundle.getStringArray("array");
2、利用Intent在Activity之間傳遞普通數據(String、boolean、int等基本類型也可以是對象)
在Main中執行如下代碼:
1: Intent intent = new Intent(MainActivity.this, SecondActivity.class);
2: intent.putExtra("name");
3: startActivity(intent);
在SecondActivity中,代碼如下:
1: Intent intent = this.getIntent();
2: String myarray= intent.getStringExtra("name");
二、常見系統調用的intent
1,調用web瀏覽器
Java代碼
Uri myBlogUri = Uri.parse("http://www.hao123.com");//放入url地址
returnIt = new Intent(Intent.ACTION_VIEW, myBlogUri);
2,地圖
Java代碼
Uri mapUri = Uri.parse("geo:38.899533,-77.036476");//放入經緯度
returnIt = new Intent(Intent.ACTION_VIEW, mapUri);
3,調撥打電話界面
Java代碼
Uri telUri = Uri.parse("tel:100861");
returnIt = new Intent(Intent.ACTION_DIAL, telUri);
4,直接撥打電話
Java代碼
Uri callUri = Uri.parse("tel:100861");
returnIt = new Intent(Intent.ACTION_CALL, callUri);
5,卸載
Java代碼
Uri uninstallUri = Uri.fromParts("package", "xxx", null);
returnIt = new Intent(Intent.ACTION_DELETE, uninstallUri);
6,安裝
Java代碼
Uri installUri = Uri.fromParts("package", "xxx", null);
returnIt = new Intent(Intent.ACTION_PACKAGE_ADDED, installUri);
7,播放
Java代碼
Uri playUri = Uri.parse("file:///sdcard/download/everything.mp3");
returnIt = new Intent(Intent.ACTION_VIEW, playUri);
8,調用發郵件
Java代碼
Uri emailUri = Uri.parse("mailto:[email protected]");
returnIt = new Intent(Intent.ACTION_SENDTO, emailUri);
9,發郵件
Java代碼
returnIt = new Intent(Intent.ACTION_SEND);
String[] tos = { "[email protected]" };
String[] ccs = { "[email protected]" };
returnIt.putExtra(Intent.EXTRA_EMAIL, tos);
returnIt.putExtra(Intent.EXTRA_CC, ccs);
returnIt.putExtra(Intent.EXTRA_TEXT, "body");
returnIt.putExtra(Intent.EXTRA_SUBJECT, "subject");
returnIt.setType("message/rfc882");
Intent.createChooser(returnIt, "Choose Email Client");
10,發短信
Java代碼
Uri smsUri = Uri.parse("tel:100861");
returnIt = new Intent(Intent.ACTION_VIEW, smsUri);
returnIt.putExtra("sms_body", "shenrenkui");
returnIt.setType("vnd.android-dir/mms-sms");
11,直接發郵件
Java代碼
Uri smsToUri = Uri.parse("smsto://100861");
returnIt = new Intent(Intent.ACTION_SENDTO, smsToUri);
returnIt.putExtra("sms_body", "shenrenkui");
12,發彩信
Java代碼
Uri mmsUri = Uri.parse("content://media/external/p_w_picpaths/media/23");
returnIt = new Intent(Intent.ACTION_SEND);
returnIt.putExtra("sms_body", "shenrenkui");
returnIt.putExtra(Intent.EXTRA_STREAM, mmsUri);
returnIt.setType("p_w_picpath/png");
最後startActivity(returnIt)