[Android] WebView 뒤로가기 , android webview back key event

북마크 추가

링크를 여러개 타고 다니다가 뒤로가기 키를 누르면 전 페이지로 돌아가지만 초기 메인 페이지까지 돌아 왔을 때 뒤로가기 키를 누르면 앱이 그냥 종료되어 버린다.

 

그래서 첫 페이지까지 왔을 경우  어플을 종료 할 것인지 물어볼 필요가 있다. 

 

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();
}
}
}

 

결과 -

 

 

 

 

 

 

 

AD
관리자
2016-05-17 16:00
SHARE