覆盖超类活动的后退按钮

时间:2013-06-12 15:01:12

标签: android android-layout android-intent salesforce

我正在与salesforce android sdk集成,它具有类nativemainactivty,它扩展了活动类。

为了将salesforce集成到应用程序中,我们需要具有扩展nativemainactivity的类。我实现了它,这样当我按下手机时,它会将用户从应用程序中取出。但是,我想导航到上一个屏幕。要导航我用下面的代码覆盖onBackpressed,但我没有成功。如果有人知道,你能指导我实现这个目标吗?

@override
public void onBackPressed(){
  super.onBackPressed() 
  sop("back pressed!!");
}

4 个答案:

答案 0 :(得分:0)

我对salesforce SDK一无所知,但我尽力提供帮助。在他们的原生主义活动中,他们可能会覆盖onKeyDown()方法。此方法调用onBackPressed()。他们可能会捕获后退按钮键代码而不会调用Activity类的超级方法。

尝试覆盖以下方法:

 @Override
public boolean onKeyDown(int keyCode, KeyEvent event) {

    if (keyCode == KeyEvent.KEYCODE_BACK) {
        // do something
    }

    return super.onKeyDown(keyCode, event);
}

答案 1 :(得分:0)

在您的代码中,您缺少分号:

  super.onBackPressed();

答案 2 :(得分:0)

分号不是你的问题。

调用super.onBackPressed()调用后退按钮默认行为的方法(即退出应用程序),这不是你想要的!!

虽然android中有许多回调需要调用超类方法才能正常运行,但这不是其中之一

如果从代码中删除“super.onBackPressed()”并使用您希望后退键具有的新功能填充方法体,那么它将起作用:

@override
public void onBackPressed(){
  sop("back pressed!!");
  //or whatever else you want it to do
}

答案 3 :(得分:0)

我把事情搞定了。

唯一要做的事就是

删除moveTaskToBack(true);

在salesforce sdk的LoginActivity中。