2

我使用以下代码切换到 android home/launcher 活动:

Intent sendIntent = new Intent(Intent.ACTION_MAIN);
sendIntent.addCategory(Intent.CATEGORY_HOME);
sendIntent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
sendIntent.putExtra("nameInt", 100);
sendIntent.putExtra("nameString", String("100");
startActivity(sendIntent);

并且家庭活动成功启动。但是,当我使用以下代码尝试在家庭活动 onStart() 中获取额外内容时,我无法从意图中获得额外内容?

Intent receiveIntent = getIntent();
int intValue = receiveIntent.getIntExtra("nameInt", -1);  // return default -1
String stringValue = receiveIntent.getStringExtra("nameString"); // nothing return

任何人都可以帮助我吗?

4

2 回答 2

4

启动器将运行launchMode="singleInstance". 这意味着当您“启动”启动器时,您并没有创建新实例,而只是将现有实例向前推进。在onStart(),调用getIntent()将返回Intent用于第一次启动活动的那个。那Intent不会有任何额外的东西,因为它是由 Android 框架启动的,而不是你。

您应该检查 中的额外onNewIntent()内容,应该使用Intent您用来启动启动器的 调用。

于 2013-11-04T10:23:32.197 回答
1

改变这个

sendIntent.putExtra("nameString", String("100");

至此

sendIntent.putExtra("nameString", "100");

于 2013-11-04T10:26:35.273 回答