링크를 여러개 타고 다니다가 뒤로가기 키를 누르면 전 페이지로 돌아가지만 초기 메인 페이지까지 돌아 왔을 때 뒤로가기 키를 누르면 앱이 그냥 종료되어 버린다.
그래서 첫 페이지까지 왔을 경우 어플을 종료 할 것인지 물어볼 필요가 있다.
1.BackPressCloseHandler.java
public class BackPressCloseHandler {
private Activity activity;
private long backKeyPressedTime;
private Toast toast;
public BackPressCloseHandler(Activity context) {
this.backKeyPressedTime = 0;
this.activity = context;
}
public void onBackPressed() {
if (System.currentTimeMillis() > this.backKeyPressedTime + 2000) {
this.backKeyPressedTime = System.currentTimeMillis();
showGuide();
} else if (System.currentTimeMillis() <= this.backKeyPressedTime + 2000) {
this.activity.finish();
this.toast.cancel();
}
}
public void showGuide() {
this.toast = Toast.makeText(this.activity, "'뒤로'버튼을 한번 더 누르시면 종료됩니다.", Toast.LENGTH_SHORT);
this.toast.show();
}
}
2.MainActivity.java
public class MainActivity extends Activity {
private BackPressCloseHandler backPressCloseHandler;
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
.
.
.
this.backPressCloseHandler = new BackPressCloseHandler(this);
}
public void onBackPressed() {
if (this.mWebView.canGoBack()) {
this.mWebView.goBack();
} else {
this.backPressCloseHandler.onBackPressed();
}
}
}
결과 -