Android開發筆記之《Intent學習》

2021-06-17 22:37:11 字數 4306 閱讀 1352

之前已經接觸過intent,現在來深入學習intent的一些東西

intent可以用來啟動乙個activity,乙個service,還可以用來發起乙個廣播(broadcast)

啟動方法如下:

元件名稱		                 方法名稱

activity startactivity() ; startactivityforresult()

service startservice ; bindservice()

broadcast sendbroadcast() ; sendorderedbroadcast() ; sendstickybroadcast()

intent由一下幾個部分組成:動作(action)、資料(data)、分類(category)、型別(type)、元件(component)、擴充套件資訊(extra)

intent尋找目標元件時有兩種方法:1.通過元件名稱直接制定            2.通過intent filter過濾指定

intent的通過intent filter過濾指定

在androidmanifest.xml中新增指定活動,服務,廣播等後,找到相應的xml位置,加入宣告action的xml語句即可實現,例如:

呼叫的語句如下:

private static final string my_action = "com.example.subservice.my_action";  //這裡的字串要和上面xml中的android:name**的字串對應

intent intent = new intent();

intent.setaction(my_action); //設定action為我們自定義的action

startservice(intent);

intent的componentname屬性

intent的元件名稱物件由componentname類來封裝,組建名稱包含包名稱和類名稱,被宣告在androidmanifest.xml檔案中

元件名稱通過setcomponent()、setclass()、setclassname()設定,通過getcomponent()獲得

conponentname cn = new componentname(mainactivity.this,"com.example.myactivity"); //例項化元件名稱

intent intent = new intent(); //例項化intent

intent.setcomponent(cn); //為intent設定元件名稱屬性

startactivity(intent); //啟動activity

intent的action屬性

action是指intent要完成的動作,是乙個字串常量。

intent類中定義了大量action常量屬性,例如action_call(打**)

我們也可以自己定義action來使用

通過setaction來設定intentaction屬性,通過getaction來獲取intent的action屬性

下面列出標準的activity action常量:

常量名稱				常量值					    意義

action_main android.intent.action.main 應用程式的入口

action_view android.intent.action.view 顯示資料給使用者

action_attach_data android.intent.action.attach_data 指明附加給其他地方的一些資料

action_edit android.intent.action.edit 顯示可編輯的資料

action_pick android.intent.action.pick 選擇資料

action_chooser android.intent.action.chooser 顯示乙個activity選擇器

action_get_content android.intent.action.get_content 獲得內容

action_dial android.intent.action.dial 顯示打**面板

action_call android.intent.action.call 直接打**

action_send android.intent.action.send 直接傳送資訊

action_sendto android.intent.action.sendto 選擇發資訊

action_answer android.intent.action.answer 應答**

action_insert android.intent.action.insert 插入資料

action_delete android.intent.action.delete 刪除資料

action_run android.intent.action.run 執行資料

action_sync android.intent.action.sync 同步資料

action_pick_activity android.intent.action.pick_activity 選擇activity

action_search android.intent.action.search 搜尋

action_wen_search android.intent.action.web_search web搜尋

action_factory_test android.intent.action.factory_test 工廠測試入口點

intent的data屬性

intent的data屬性是執行動作的uri和mime型別,不同的action有不同的data資料指定

一些常見的action和data的匹配應用如下:

action屬性			data屬性				說明

action_view content://contacts/people/1 顯示_id為1的聯絡人資訊

action_dial content://contacts/people/1 將_id為1的聯絡人**號碼顯示在撥號介面中

action_view tel:123 顯示**為123的聯絡人資訊

action_view 在瀏覽器中瀏覽該**

action_view geo:39.3256,116.2312 顯示地圖

public void onclick(view v)

intent的category屬性

intent中的category屬性是乙個執行action的附加資訊。

例如,category_launcher意味著引導程式時,activity出現在最上面。還有category_home則表示回到home介面

intent intent = new intent();

intent.setaction(intent.action_main);

intent.addcategory(intent.category_home); //新增category屬性使得返回home介面

startactivity(intent);

intent的extra屬性

intent的extras屬性是新增一些元件的附加資訊

intent intent = new intent();

intent.setclass(mainactivity.this,otheractivity.class);

intent.putextra("name","this is a test");

startactivity(intent);

Android開發筆記之Android St

先說下經過。首先是安卓studio還能正常工作的時候,右上角提示更新。手抖點了一波。然後發現layout檢視出現了問題。之後查了幾個方法,沒有解決這個問題。因為我原來用的是23.1等的23開頭系列版本。於是就把帶24的更新全部 刪除了。於是就出現了 unable to obtain debug br...

Android 開發筆記

版本控制的注意事項 以下資料夾不要加入版本控制 bin bin是編譯的二進位制檔案的存放路徑 gen gen是android需要的資源檔案的原始檔存放的目錄 使用svn的時候要注意專案編譯的問題 在編譯的時候程式會把src資料夾裡面的檔案拷貝到bin裡面,但是svn是每個資料夾裡面都包含乙個隱藏的....

Android開發筆記

1.unable to resolve target android 4 fishjoy final未知android target problem 修改default properties 或者重啟 2.別人的開發筆記 3.真機除錯的時候,一定要下google的usb driver.或者省時省力,...