【Android學習筆記】Intent的基本作用

看了傳智播客的視頻(50+個),對安卓剛剛有了一定的瞭解。

現在正在看mars的視頻教程,算是複習一下。希望跟我有同樣夢想的朋友,大家一起加油!


一個Intent對象包含了一組信息:

1.Component name

記錄Intent對象要啓動的哪個組件,可以是Activity,也可以是Service,也可以是BroadcastReceiver

2.Action

指定組件要做哪些動作

比如官方文檔就設置了一些Action常量,ACTION_CALL,  ACTION_MAIN,  ACTION_BATTERY_LOW等等


3.Data

一個activity向另外的Activity傳輸的信息(URL和MIME類型)

比如action是ACTION_CALL,那麼data就應當以tel:開頭,後面加上撥打的號碼

setData()方法:只用來指定data的URI

setType()方法:只用來指定data的MIME類型

如果又要設置URI又要指定MIME,不能去依次調用上面的方法,需要用setDataAndType()

4.Category

指定要啓動的組件的類型,可以通過category或者action,根據AndroidManifest.xml中各個Activity定義的intent-filter,來自動查找,啓動隱式意圖(不用指定組件的class)

5.Extras

額外的信息,是一些鍵值對。

例如:

Intent intent=new Intent("......");

intent.putExtra("name","xiaojing");

startActivity(intent);


這樣在另一個Activity中,這樣就能通過intent對象,來得到name這個屬性值:

Intent intent=getIntent();

String name=intent.getStringExtra("name");


還有一種在Intent對象中存入額外信息的方法是:通過Intent中的Bundle對象

Bundle bundle=intent.getBundleExtra();

bundle.putString("name","xiaojing");

6.Flags

關於intent的flag問題。發現一篇博客,解釋的挺好的,感謝原作者的分享

出處:http://www.cnblogs.com/mybkn/ 

android:intent flags

   一、Activity和Task(棧)的關係
  Task就像一個容器,而Activity就相當與填充這個容器的東西,第一個東西(Activity)則會處於最下面,最後添加的東西(Activity)則會在最低端。從Task中取出東西(Activity)則是從最頂端取出,也就是說最先取出的是最後添加的東西(Activity),一次類推,最後取出的是第一次添加的Activity,而Activity在Task中的順序是可以控制的,那則在Activity跳轉時用到Intent Flag
 二、界面跳轉和服務的啓動都會用到Intent,現在介紹Intent Flag是關於Activity的跳轉
  Intent intent = new Intent(this,xxx.class);

  //如果activity在task存在,拿到最頂端,不會啓動新的Activity
  intent.addFlags(Intent.FLAG_ACTIVITY_BROUGHT_TO_FRONT);


  //如果activity在task存在,將Activity之上的所有Activity結束掉
  intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);


  //默認的跳轉類型,將Activity放到一個新的Task中
  intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);


  //如果Activity已經運行到了Task,再次跳轉不會在運行這個Activity
  intent.addFlags(Intent.FLAG_ACTIVITY_SINGLE_TOP);



使用Intent發送消息

Uri uri=Uri.parse("smsto://13916052547");

Intent intent=new Intent(Intent.ACTION_SENDTO,uri);

intent.putExtra("sms_body","SMS content:Hello");

startActivity(intent);

//效果是,會開啓短信發送的應用頁面,並自動填好了短信接收方的號碼和短信正文的內容

//所以intent對象能訪問不同App的Activity

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