Android教程(2.1) Activity的詳細講解
阿新 • • 發佈:2019-01-31
這裡面配置用到了action, data, category這些東西,那麼聰明的你一定想到intent裡也會有這些東西,然後一匹配不就找到接收者了嗎?
action其實就是一個意圖的字串名稱。
上面這段intent-filter的配置檔案說明了這個Activity可以接受不同的Action,當然相應的程式邏輯也不一樣咯,提一下那個 mimeType,他是在ContentProvider裡定義的,你要是自己實現一個ContentProvider就知道了,必須指定 mimeType才能讓資料被別人使用。
不知道原理說明白沒,總結一句,就是你呼叫別的介面不是直接new那個介面,而是通過扔出一個intent,讓系統幫你去呼叫那個介面,這樣就多麼鬆藕合啊,而且符合了生命週期被系統管理的原則。
想知道category都有啥,Android為你預先定製好的action都有啥等等,請親自訪問官方連結 Intent
ps:想知道怎麼呼叫系統應用程式的同學,可以仔細看一下你的logcat,每次執行一個程式的時候是不是有一些資訊比如:
Starting activity: Intent { action=android.intent.action.MAIN categories={android.intent.category.LAUNCHER} flags=0x10200000 comp={com.android.camera/com.android.camera.GalleryPicker} }
再對照一下Intent的一些set方法,就知道怎麼呼叫咯,希望你喜歡:)
action其實就是一個意圖的字串名稱。
上面這段intent-filter的配置檔案說明了這個Activity可以接受不同的Action,當然相應的程式邏輯也不一樣咯,提一下那個 mimeType,他是在ContentProvider裡定義的,你要是自己實現一個ContentProvider就知道了,必須指定 mimeType才能讓資料被別人使用。
不知道原理說明白沒,總結一句,就是你呼叫別的介面不是直接new那個介面,而是通過扔出一個intent,讓系統幫你去呼叫那個介面,這樣就多麼鬆藕合啊,而且符合了生命週期被系統管理的原則。
想知道category都有啥,Android為你預先定製好的action都有啥等等,請親自訪問官方連結
ps:想知道怎麼呼叫系統應用程式的同學,可以仔細看一下你的logcat,每次執行一個程式的時候是不是有一些資訊比如:
Starting activity: Intent { action=android.intent.action.MAIN categories={android.intent.category.LAUNCHER} flags=0x10200000 comp={com.android.camera/com.android.camera.GalleryPicker} }
再對照一下Intent的一些set方法,就知道怎麼呼叫咯,希望你喜歡:)