2014-11-03 123 views
3

我不明白我們爲什麼使用方法getIntent()Android:我們什麼時候使用getIntent()?

因爲,當我們需要該方法時,我們可以使用方法onActivityResult()

但通過使用方法getIntent(),它可能會導致空指針異常

任何人都可以解釋我(android新手)?

+0

你的意思是'活動#getIntent()'? – DeeV 2014-11-03 19:57:37

+0

是的,我的問題不好?我不知道我爲什麼減去... – LKM 2014-11-03 20:00:25

回答

12

http://developer.android.com/reference/android/app/Activity.html#getIntent()

返回已啓動該活動的意圖。

如果你這樣做

Intent intent = new Intent(context, SomeActivity.class); 
intent.putExtra("someKey", someData); 

先從一些數據的活動,比如你可以在新的活動使用getIntent檢索此數據:

Intent intent = getIntent(); 
intent.getExtra("someKey") ... 

所以,它不適合處理來自Activity的返回數據,比如onActivityResult,但它用於將數據傳遞給新的Activity。

+1

想知道我應該把'getIntent()'放在哪裏。在onStart?的onCreate?活動主線程? – Keith 2016-02-02 16:30:06

+0

無論何時何地,只要你需要它,經常使用一次onCreate來提取所需的數據。但是,如果數據的使用基於某些用戶交互或其他方式,也可以在其他地方使用。 – Kenneth 2016-02-03 06:33:56

0

getInent用於將數據froman活動傳遞給另一個, 例如,如果要從名爲startActivity的活動切換到另一個名爲endActivity的活動,並且希望startActivity中的數據在endActivity中知道,請執行以下操作: 在startActivity:

String dataToTransmit="this info text will be valid on endActivity"; 
Intent intent =new Intent(this, endActivity.class); 
intent.putExtra("dataToTransmitKey",dataToTransmit); 
startActivity(intent); 

在endActivity:

Intent intent = getIntent(); 
String dataTransmited=intent.getStringExtra("dataToTransmitKey"); 
相關問題