intent
的最常用的用途是繫結應用程式元件。
intent
用來在應用程式的
activity
間啟動、停止和傳輸。
這一章節中關於啟動新的
activity
的提示,也同樣適用於
service。第8
章可以了解到關於啟動(和建立)
service
的細節。
為了開啟應用程式中不同的畫面(
activity
),呼叫
startactivity
,傳入乙個
intent
,如下面的片段所示:
startactivity(myintent);
intent
既可以顯式的指定類去開啟,也可以包含目標需要執行的動作。在後者的情況下,執行時會選擇
activity
去開啟,使用乙個熟知的處理過程——「
intent
解析」
startactivity
方法查詢、啟動與
intent
最匹配的單一
activity。
當使用startactivity
時,新啟動的
activity
結束是你的應用程式不會接收到任何通知。為了追蹤開啟畫面的反饋,使用
startactivityforresult
方法,在後面會描述更多細節。
顯式啟動新的
activity
你在第2
章已經了解到,應用程式由很多個內部相互聯絡的螢幕——
activity
組成,這些
activity
必須包含在應用程式的
manifest
中。為了連線它們,你可能想要顯式的指定開啟哪個
activity。
為了顯式地選擇乙個
activity
類來啟動,需要建立乙個新的
intent
,指定當前應用程式的上下文和要啟動的
activity
的類。然後傳遞這個
intent
給startactivity
,如下的**片段所示:
intent intent = new intent(myactivity.this, myotheractivity.class);
startactivity(intent);
在呼叫startactivity
之後,新的
activity
(在這個例子裡,是
myotheractivity
)將被建立,並變成可見和活躍狀態,移到
activity
棧的最頂端。
**呼叫新
activity
的finish
方法會關閉它,並從棧中移除。可變通的地方,使用者可以通過裝置的
back
按鈕導航到先前的
activity。
隱式intent
和執行時繫結
隱式intent
是一種讓匿名應用程式元件服務動作請求的機制。當建立乙個新的隱式
intent
時,你指定要執行的動作,作為可選項,你可以提供這個動作所需的資料。
當你使用這個新的隱式
intent
來啟動activity
時,android
會在執行時解析它,找到最適合在指定的資料型別上執行動作的類。這意味著,你可以建立使用其它應用程式的工程,而不需要提前精確地知道你會借用哪個應用程式的功能。
例如,如果你想讓使用者在應用程式裡打**,與其實現乙個新的撥號,不如使用乙個隱式的
intent
來請求乙個在乙個**號碼(
uri表示)上的動作(撥乙個號碼),如下**片段所示:
if (somethingweird && itdontlookgood)
android
解析這個
intent
並啟動乙個提供了能在乙個號碼上執行撥號動作的
activity
,在這裡,是撥號
activity。
一些本地的應用程式提供了在特定資料上執行動作的元件。第三方應用程式,包括你的,也可以註冊來支援新的動作或為本地動作提供一種替代的方法。你會在本章的後面了解到一些本地的動作。
使用Intent啟動Activity
intent 的最常用的用途是繫結應用程式元件。intent 用來在應用程式的 activity 間啟動 停止和傳輸。這一章節中關於啟動新的 activity 的提示,也同樣適用於 service。第8 章可以了解到關於啟動 和建立 service 的細節。為了開啟應用程式中不同的畫面 activi...
使用Intent 啟動活動
intent大致可以分為兩種 顯式intent和隱式intent兩種。使用顯式intent啟動活動通常會使用這個建構函式 intent context context,classcls context引數要求輸入上下文,cls則需要輸入想要啟動的活動 在例項化乙個intent後只需要使用starta...
簡單使用隱式intent 啟動應用
啟動傳送訊息的應用 intent i new intent intent.action send 根據這個引數確定 i.settype text plain i.putextra intent.extra text,getcrimereport i.putextra intent.extra sub...