如何在onBackPressed()中调用一个活动类 - android

时间:2011-03-30 08:02:46

标签: android

public void onBackPressed()
    {
        Intent setIntent = new Intent(this,xxxxx.class);
        startActivity(setIntent); 
        return;
    } 

我将onBackPressed()调用到一个活动处理发生得很好。但是它再次调用相同的活动(即)如果我们在android手机中按回去,之前的onCreate()方法无法调用正常动作,如果我们覆盖'onBackPressed()'onCreate()按照上面的代码调用。那么我们如何在没有onCreate()的帮助下开始活动。

3 个答案:

答案 0 :(得分:0)

return之前,您可以致电finish();。和/或代替return致电super.onBackPressed();

答案 1 :(得分:0)

最后我找到了上述问题的答案。使用“活动”组来保持切换类,并在按下后退时减少一个值(一个“活动”)。以下内容对您有用:

从一个活动切换到另一个活动

在从一个活动切换到另一个活动时创建Arraylist历史记录将该特定视图添加到历史记录

View view = getLocalActivityManager()
  .startActivity(
    getString(R.string.hometab), 
    new Intent(this, Sample.class)
      .addFlags(Intent.FLAG_ACTIVITY_BROUGHT_TO_FRONT)
  ).getDecorView();
FinderActivityGroup.finderGroup.replaceView(view); 

背面按下

当按下时,减去(减去)历史记录,如下面的代码

if (history.size() > 0) {
  history.remove(history.size() - 1);
  setContentView(history.get(history.size() - 1));
}
else {
  finish();
}
return;

我们正在减少历史记录,这意味着onCreate()方法无法再次调用,这就像正常的背压一样。

答案 2 :(得分:0)

这是一个简单的方法: 只需添加finish();而不是回归; 这不会让堆栈累积。

public void onBackPressed()
{
    Intent setIntent = new Intent(this,xxxxx.class);
    startActivity(setIntent); 
    finish();
}