Android-如何覆蓋“Back”按鈕,這樣它就不會完成我的活動?我目前有一個活動,當它被顯示時,通知也會顯示在Notificationbar中。這樣,當用戶按home并將活動推送到后臺時,他們就可以通過通知返回到活動中。當用戶按下“后退”按鈕,我的活動就會被銷毀,但通知仍然是我希望用戶能夠按下,但仍然能夠通過通知到達活動時出現的問題。但是當用戶嘗試這一點時,我會得到Null指針,因為它試圖啟動一個新的活動,而不是帶回舊的活動。因此,本質上,我希望后退按鈕的動作與Home按鈕完全一樣,下面是我到目前為止所做的嘗試: @Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
if (Integer.parseInt(android.os.Build.VERSION.SDK) < 5
&& keyCode == KeyEvent.KEYCODE_BACK && event.getRepeatCount() == 0) {
Log.d("CDA", "onKeyDown Called");
onBackPressed();
}
return super.onKeyDown(keyCode, event);
}
public void onBackPressed() {
Log.d("CDA", "onBackPressed Called");
Intent setIntent = new Intent(Intent.ACTION_MAIN);
setIntent.addCategory(Intent.CATEGORY_HOME);
setIntent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
startActivity(setIntent);
return;
}然而,上面的代碼似乎仍然允許我的活動被銷毀,當按下“后退”按鈕時,我如何才能阻止我的活動被銷毀呢?
3 回答

侃侃爾雅
TA貢獻1801條經驗 獲得超16個贊
true
KEY_BACK
.
onBackPressed()
).
startForeground()
@Overridepublic boolean onKeyDown(int keyCode, KeyEvent event) { if (Integer.parseInt(android.os.Build.VERSION.SDK) > 5 && keyCode == KeyEvent.KEYCODE_BACK && event.getRepeatCount() == 0) { Log.d("CDA", "onKeyDown Called"); onBackPressed(); return true; } return super.onKeyDown(keyCode, event);}@Overridepublic void onBackPressed() { Log.d("CDA", "onBackPressed Called"); Intent setIntent = new Intent(Intent.ACTION_MAIN); setIntent.addCategory(Intent.CATEGORY_HOME); setIntent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK); startActivity(setIntent);}

瀟湘沐
TA貢獻1816條經驗 獲得超6個贊
@OverrideonSaveInstanceState(Bundle frozenState) { frozenState.putSerializable("object_key", someSerializableClassYouWantToPersist); // etc. until you have everything important stored in the bundle}
@OverrideonCreate(Bundle savedInstanceState) { if(savedInstanceState!=null){ //It could be null if starting the app. mCustomObject = savedInstanceState.getSerializable("object_key"); } // etc. until you have reloaded everything you stored}
- 3 回答
- 0 關注
- 428 瀏覽
添加回答
舉報
0/150
提交
取消