一、使用系統Back鍵實現退出應用
Android的系統Back鍵是應用退出的常用方式,通過重寫Activity的onBackPressed()方法可以實現在Back鍵按下時退出應用。
@Override public void onBackPressed() { moveTaskToBack(true); super.onBackPressed(); }
這裡調用了moveTaskToBack(true)使應用進入後台,而後調用super.onBackPressed()正常將應用退出。需要注意的是,如果在Activity跳轉時不會調用onBackPressed()方法,如果需要在此時退出應用,需在跳轉代碼中添加finish()方法。
二、使用系統Home鍵實現退出應用
實現使用系統Home鍵退出應用的方式相對簡單,只需在退出應用前調用System.exit(0)方法即可,但不建議使用該方法,因為其方式過於粗暴。
@Override public boolean onKeyDown(int keyCode, KeyEvent event) { if(keyCode == KeyEvent.KEYCODE_HOME){ System.exit(0);//退出應用 return true; } return super.onKeyDown(keyCode, event); }
三、利用廣播機制實現退出應用
通過應用內自定義廣播,在接收到廣播時退出應用,相對於前兩種方法,該方法更加安全可控。
首先在Mainfest文件中註冊廣播接收器:
<receiver android:name=".ExitReceiver"> <intent-filter> <action android:name="exit_app" /> </intent-filter> </receiver>
然後定義廣播接收器,實現退出應用的操作:
public class ExitReceiver extends BroadcastReceiver { @Override public void onReceive(Context context, Intent intent) { if(intent.getAction().equals("exit_app")){ ((Activity)context).finish(); } } }
最後,在需要退出應用的地方發送該廣播:
Intent intent = new Intent("exit_app"); sendBroadcast(intent);
四、使用Dialog確認退出應用
為避免用戶誤操作,可在退出應用前使用Dialog提示用戶,讓用戶確認是否退出應用。
首先定義Dialog,代碼如下:
private void showExitDialog(){ AlertDialog.Builder builder = new AlertDialog.Builder(this); builder.setTitle("提示") .setMessage("是否退出應用?") .setPositiveButton("確定", new DialogInterface.OnClickListener() { @Override public void onClick(DialogInterface dialog, int which) { finishAll(); } }) .setNegativeButton("取消", null) .create() .show(); }
然後在需要退出應用的地方調用該Dialog即可:
showExitDialog();
需要注意的是,finishAll()方法是在BaseActivity中自定義實現的,用於結束所有Activity。
五、結合雙擊Back鍵實現退出應用
為提供更加靈活的退出方式,可考慮結合雙擊Back鍵實現退出應用。
首先需要定義變量記錄點擊的時間:
private long mExitTime = 0;
然後在onBackPressed()方法中判斷時間是否超過2秒,如果超過則重置mExitTime,否則退出應用:
@Override public void onBackPressed() { if((System.currentTimeMillis() - mExitTime) > 2000){ Toast.makeText(this, "再按一次退出應用", Toast.LENGTH_SHORT).show(); mExitTime = System.currentTimeMillis(); } else{ finishAll(); } }
六、總結
本文分別介紹了五種Android退出應用的實現方式,分別是使用系統Back鍵、使用系統Home鍵、利用廣播機制、使用Dialog確認、結合雙擊Back鍵。每種方式都有各自的優缺點,根據應用實際情況選擇適合的方式。
原創文章,作者:KNRME,如若轉載,請註明出處:https://www.506064.com/zh-hk/n/333519.html