天天看點

onBackPressed()無法被調用解決是不是繼承的Activity裡面已經将傳回鍵重寫了,導緻不能調用?

今天項目經理讓我改需求,發現有個需求是A頁面的數值和B頁面的數值不一樣(比如說:充值錢過後,充值頁面(B)發生改變而,最開始顯示錢的頁面(A)還是之前沒充值的錢數)。當看到這個的時候覺得非常簡單,後面看了一下源碼,他沒有寫onActivityResult()方法,後面就開始了改代碼,非常輕松的将代碼打完過後發現。。。啥子都沒有改變,還是老樣子,後面自己寫了個demo發現可以正常的使用,這就奇怪了,然後不服氣的瞎jb百度的找了一上午,結果并沒有啥子卵用,後面下午打算喊大牛給看下,結果剛好大牛公司斷電了,然後他們就下班了。。。

  好吧自己動手風衣主食,回家的路上也在百度和想是哪裡出錯了,比如super.onBackPressed();是否應該保留和onActivityResult中的super也是否應該保留,後面回家試了試好像和這些都沒啥子關系的,突然。。。想起來了一件事情,

是不是繼承的Activity裡面已經将傳回鍵重寫了,導緻不能調用?

結果看了下

@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
    if (keyCode == KeyEvent.KEYCODE_BACK) {
        finish();
    }
    return false;
}      

還真是的,已經将事件占用了,于是直接将這個方法注釋掉了,然後。。。問題就解決了!是以總結了一下,做什麼出問題了都不要心急,慢慢想想自己如果demo都可以正常運作,肯定是代碼出錯了,特别是閱讀别人家的代碼!希望對大家有幫助。