2013-06-12 35 views
0

我正在與salesforce android sdk進行集成,該SDK具有擴展活動類的nativemainactivty類。覆蓋超類活動的後退按鈕

爲了將salesforce集成到應用程序中,我們需要擴展nativemainactivity的類。我實現了這個功能,當我按下手機時,它將用戶帶出應用程序。但是,我想導航到前一個屏幕。爲了導航我用下面的代碼覆蓋onBackpressed,但我沒有成功。如果有人知道,你能指導我做到這一點嗎?

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

當您點擊後退按鈕時,該代碼會發生什麼?仍然退出應用程序? – mt0s

回答

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); 
} 
+0

感謝您的重播,nativemainactivity不會覆蓋壓縮和上面的代碼不起作用。 – user2211659

0

在你的代碼缺少分號:

super.onBackPressed(); 
0

這並不是說是你的問題的分號。

調用super.onBackPressed()正在調用返回按鈕的默認行爲(即退出應用程序)的方法,這不是你想要的!

雖然有許多在android系統需要超類方法才能正常工作被稱爲回調,這是不是其中之一

如果從刪除「super.onBackPressed()」您的代碼,並填寫方法體中,只有新的功能,你想返回鍵有,那麼它會工作:

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

我得到了事情的來龍去脈。

唯一能做的就是

刪除moveTaskToBack(真);

在salesforce sdk的LoginActivity中。