Android:返回主要活动问题

时间:2011-08-29 00:02:41

标签: android android-activity android-intent onresume activity-lifecycle

在我的主要活动中,我有一个菜单,当选择菜单选项时,会创建一个Intent并启动一个新活动。当该活动完成时,该过程应根据ActivityLifeCycle返回主活动及其所有先前状态。

我注意到当它返回主活动时,什么都无法访问,屏幕变暗。当我按下菜单软键时,我只能回到我的期望。

之前有没有人遇到过这个问题?反馈将不胜感激! 代码示例如下:

@Override
protected void onResume(){          
    super.onResume();
}

@Override
public boolean onCreateOptionsMenu(Menu menu) {
    MenuInflater inflater = getMenuInflater();
    inflater.inflate(R.menu.main_menu, menu);
    return true;
}    

@Override
public boolean onOptionsItemSelected(MenuItem item) {
    // Handle item selection
    switch (item.getItemId()) {
    case R.id.menu_settings: 
        return true;            
    case R.id.menu_decks:
        Intent launchDecks = new Intent(this, stackDecks.class);
        startActivity(launchDecks);             
        return true;        
    case R.id.menu_exit:  
        this.onDestroy();
        this.finish();
        return true;
    default:
        return super.onOptionsItemSelected(item);
    }
}   

2 个答案:

答案 0 :(得分:2)

第一篇文章中的代码实际上是正确的(我有一些非常相似的东西)。即使在没有任何问题的情况下膨胀,也很可能错误出现在menu.xml res文件中。检查两个地方是否完全一致,并且具有相同的项目。经过几个小时的实验,我终于解决了它。

答案 1 :(得分:0)

你似乎对super的使用感到困惑。

super.m()用于调用超类方法。

如果你继承没有覆盖的方法那么 super.m()= this.m() 看你的super.onDestroy

覆盖方法m()只是为了调用super.m()是绝对无用的 查看你的onResume

有时调用super clas方法很有用,它允许您从子类中的此代码中受益。例如,onCreateMenuOptions被覆盖,您的子类可以从菜单的一些模仿代码中受益。

此致  斯特凡