我有一个 MainActivity,我在 onCreate() 方法中定义了以下代码。目的是,当 MainActivity 获得额外的字符串“EXIT”时,然后显示 Toast 消息:
Intent current = getIntent();
if (current !=null && current.getStringExtra("EXIT") != null) {
Toast.makeText(this, "exiting", Toast.LENGTH_LONG).show();
}
这个 MainActivity 在按下某个按钮时启动另一个 Activity “DayOne”,例如:
public void processGo(View v){
Intent i = new Intent(MainActivity.this,DayOne.class);
i.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
MainActivity.this.startActivity(i);
}
现在我在添加额外的字符串“EXIT”后从“DayOne”返回到 MainActivity。这是我在 onOptionsItemSelected(MenuItem item) 方法中做的:
public boolean onOptionsItemSelected(MenuItem item){
if(item.getTitle().equals("Exit")){
Intent i = new Intent(DayOne.this,MainActivity.class);
i.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
i.putExtra("EXIT", "EXIT");
startActivity(i);
finish();
}
return super.onOptionsItemSelected(item);
}
问题是,当从 DayOne 调用 MainActivity 时带有额外的字符串“EXIT”;我没有看到 MainActivity 中定义的 Toast 消息。这里缺少什么或错了什么?
感谢任何帮助。
最佳答案
感谢大家的评论和帮助。
我已经弄清楚了这里的问题。这是因为 list 文件有一个条目 android:launchMode="singleInstance"用于两个 Activity (MainActivity 和 DayOne Activity)..
从那里删除它,它工作正常。
关于android - getIntent 在 MainActivity 中不起作用。越来越奇怪的行为,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18929374/