android - getIntent 在 MainActivity 中不起作用。越来越奇怪的行为

标签 android android-intent menuitem

我有一个 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/

相关文章:

android - layout_weight 不一致

java - 在android中对 map 进行排序

android - 是否可以在不设置 Eclipse 的情况下运行 Android 模拟器

css - 使用 CSS 将按钮添加到菜单项

java - 如何从 onoptionsitemselected 访问所有菜单项

vb.net - 减少菜单项的图标与其文本之间的间距

android - 背景图像交叉淡入淡出

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

android - 短信发送后返回onActivityResult

android - 使用 Intent 启动媒体播放器