2014-03-01 39 views
2

學習如何製作android應用程序,我做了這件事。嘖嘖的總結是在這裏:「getIntent()」 - 它是如何工作的

http://sketchytech.blogspot.com/2012/10/android-simple-user-interface-activity.html

我想弄清楚的意圖是如何工作的。在tut中創建一個名爲intent的Intent,並在DisplayMessageActivity.java中通過調用「getIntent()」創建一個名爲intent的Intent。

「getIntent()」函數(或方法(我最熟悉C))是否返回最近創建的意圖?一次只能有一個意圖嗎?

任何反應提前Thinks!

回答

1

所有活動由要麼startActivity(Intent)startActivityForResult(Intent, int)方法開始。意圖告訴Activity需要知道的一切,以便在啓動時顯示正確的信息。 getIntent()在Activity中調用時,會爲您提供對用於啓動此活動的Intent的引用。

+0

你是否總是需要一種意圖來開始一項活動?或者將startActivity接受其他類型的參數? – Williamz

+0

你總是需要一個意圖。 Intents可以包含各種各樣的信息,比如Activity要求啓動這個信息,Extras是基本變量和Parcelable對象,用於告訴新的Activity它需要使用哪些數據,還可以指定Actions爲你想要的要做的新活動(即瀏覽內容,選擇價值等)。無論如何,一個Activity只能用一個Intent來啓動,所以getIntent()不應該返回null。 – SDJMcHattie

+0

謝謝!這有很大幫助 – Williamz

0

getIntent()方法獲取調用此activity.there可不止一個意圖intent但你只有一個意向在同一時間(因爲只有一個活動是可見一次)

0

有可見你將使用兩種主要的意圖形式。

顯式意圖指定了一個組件(通過 setComponent(ComponentName)或setClass(Context,Class)),其中 提供了要運行的確切類。通常這些將不包括任何其他信息,僅僅是作爲用戶與 應用程序交互時應用程序啓動其所具有的各種內部活動的方式。隱含意圖沒有指定一個組件;相反,它們必須包含足夠的信息以供系統確定哪些可用組件最適合爲該意圖運行哪些組件。

Intent是一個數據類,它保存即將啓動的Activity的信息。活動是當前顯示在屏幕上的視圖的管理者或控制者。

系統中的活動作爲活動堆棧進行管理。當一個新的 活動開始時,它被放置在堆棧的頂部,並變爲 運行活動 - 之前的活動始終保持低於堆棧中的 ,並且不會再次到達前臺,直到新的 活動退出。

enter image description here

+0

意圖不是活動 – SDJMcHattie

+0

要快速書寫,我犯了錯誤的文字。 – RMachnik

0

Activity通常通過Intent創建。假設你在你的第一個活動:

Intent intent = new Intent(MyFancyActivity.class, Intent.ACTION_VIEW); 
startActivity(intent); 

這將啓動一個新的MyFancyActivity實例。從MyFancyActivity,您可以檢索導致該實例創建的意圖。也就是說,getIntent()方法:

// this is the intent created in your first activity 
Intent i = getIntent(); 
相關問題