我使用以下代码切换到 android home/launcher Activity :
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);
首页 Activity 成功启动。但是,当我使用以下代码尝试在家庭 Activity onStart() 中获取额外内容时,我无法从 Intent 中获取额外内容?
Intent receiveIntent = getIntent();
int intValue = receiveIntent.getIntExtra("nameInt", -1); // return default -1
String stringValue = receiveIntent.getStringExtra("nameString"); // nothing return
有人可以帮助我吗?
最佳答案
启动器将以 launchMode="singleInstance"
运行。这意味着当您“启动”启动器时,您并不是在创建新实例,而是只是将现有实例向前推进。在 onStart()
,调用getIntent()
将返回 Intent
用于首次启动 Activity 。那Intent
不会有任何额外的东西,因为它是由 Android 框架启动的,而不是你。
您应该检查 onNewIntent()
中的额外内容,应使用 Intent
进行调用您用来启动启动器的。
关于android - 为什么我无法从 android home/launcher Activity 中的 Intent 获取 int/string,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19765521/