一、使用系統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
微信掃一掃
支付寶掃一掃