intent

一、定義

Intent是一種在不同組件之間傳遞的請求消息是應用程序發出的請求和意圖。作爲一個完整的消息傳遞機制,Intent不僅需要發送端,還需要接收端。

顯式Intent定義:對於明確指出了目標組件名稱的Intent,我們稱之爲顯式Intent。

隱式Intent定義:對於沒有明確指出目標組件名稱的Intent,則稱之爲隱式Intent。

 

啓動分爲:

   1、A-->B 不需要B界面返回消息

   startactivity(initent);

 

   2、A-->B 需要B界面返回消息

   startActivityForResult(intent, requestCode);

 

例子:

1、利用IntentActivity之間傳遞數組

在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、利用IntentActivity之間傳遞普通數據(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)

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章