我使用以下代码切换到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);
家庭活动成功启动。但是,当我使用下面的代码试图在home 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
。因为它是由android框架(而不是你)启动的,所以它不会有任何额外功能。
您应该检查Intent
中的附加项,该附加项应该使用用于启动启动程序的onNewIntent()
调用。