android - 为什么我无法从 android home/launcher Activity 中的 Intent 获取 int/string

标签 android android-intent

我使用以下代码切换到 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/

相关文章:

java - android 使用数组从 url 共享图像?

通过 Facebook 中未显示的意向文本进行 Android 分享

android - 从 Looxcie 设备访问视频流

android - 我想在 volley 调用中发送 json 对象作为参数

java - 以 Intent 开始新 Activity 会抛出可序列化的异常

android - android中捕获的图像不是从另一个 Activity 中获取的

Android Bitmap Masking (Xfermode) 留下不透明的黑色背景

android - 我已经在我的应用程序中更改了 Firebase 名称,但该应用程序仍然加载旧的 Firebase

android - Genymotion Lollipop 预览图像无法启动

java - 使用 Navigation 包中的 startActivity