2014-11-03 137 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"); 
相关问题