我有一個應用程序,其中有不同的活動。在1個活動,我想,當用戶按下後退按鈕,我希望應用程序被關閉,並顯示退出Android應用程序返回按鈕
碼主屏幕
public boolean onKeyDown(int keyCode, KeyEvent event)
{
//Handle the back button
if(keyCode == KeyEvent.KEYCODE_BACK)
{
//Ask the user if they want to quit
new AlertDialog.Builder(this)
.setIcon(android.R.drawable.ic_dialog_alert)
.setTitle("Exit")
.setMessage("Really Exit ?")
.setPositiveButton("Yes", new DialogInterface.OnClickListener()
{
public void onClick(DialogInterface dialog, int which)
{
Intent intent = new Intent(Intent.ACTION_MAIN);
intent.addCategory(Intent.CATEGORY_HOME);
intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
startActivity(intent);
}
})
.setNegativeButton("No", null)
.show();
return true;
}
else
{
return super.onKeyDown(keyCode, event);
}
}
當我運行這一點,按後退按鈕時,主屏幕顯示,但當我第二次運行它,我得到一個控制檯輸出作爲
ActivityManager:警告:活動未啓動,它的當前任務已被帶到前面。
並顯示後退按鈕被按下的活動。 我認爲應用程序不會被殺死並在後臺運行。只要提一下,這不是我的應用程序的開始活動。
有人可以幫助我,我是初學者。
你的問題給出不明確親愛的。 – Androiduser
在onPause()中寫'finish();'... – GAMA
信息點:從Android 2.0開始,後退按鈕的默認頂層處理程序一直處於onKeyUp()的默認(Activity類)實現中,而不是onKeyDown ()。因此,如果您要嘗試修改此行爲(例如,通過提示進行確認),則可能需要重寫onKeyUp()。 這個默認的Activity.onKeyUp()本身調用onBackPressed(),它的默認實現是調用finish(),它會結束當前的(主要)活動。 – Carl