3 回答

TA貢獻1802條經(jīng)驗 獲得超5個贊
你可以像這樣處理它:
適用于API等級5及更高版本
@Override
public void onBackPressed() {
// your code.
}
比API 5更早
@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
if (keyCode == KeyEvent.KEYCODE_BACK) {
// your code
return true;
}
return super.onKeyDown(keyCode, event);
}

TA貢獻1993條經(jīng)驗 獲得超6個贊
除了以上我個人推薦
onKeyUp():
Programatically 當(dāng)用戶最初按下一個鍵時,會發(fā)出keydown,但是當(dāng)用戶按下該鍵時它會重復(fù)。*
所有開發(fā)平臺都是如此。
Google開發(fā)建議,如果您在視圖中攔截BACK按鈕,則應(yīng)在keydown上使用starttracking跟蹤KeyEvent,然后使用keyup調(diào)用。
public boolean onKeyDown(int keyCode, KeyEvent event) {
if (keyCode == KeyEvent.KEYCODE_BACK
&& event.getRepeatCount() == 0) {
event.startTracking();
return true;
}
return super.onKeyDown(keyCode, event);
}
public boolean onKeyUp(int keyCode, KeyEvent event) {
if (keyCode == KeyEvent.KEYCODE_BACK && event.isTracking()
&& !event.isCanceled()) {
// *** Your Code ***
return true;
}
return super.onKeyUp(keyCode, event);
}

TA貢獻1810條經(jīng)驗 獲得超4個贊
對于硬件設(shè)備后退按鈕和軟主頁(后退)按鈕,例如“< - ”,這對我有用。(*注意我在活動中有一個應(yīng)用欄/工具欄)
@Override
public boolean onOptionsItemSelected(MenuItem item) {
switch (item.getItemId()) {
case android.R.id.home:
//finish();
onBackPressed();
break;
}
return true;
}
@Override
public void onBackPressed() {
//Execute your code here
finish();
}
干杯!
- 3 回答
- 0 關(guān)注
- 441 瀏覽
添加回答
舉報