■ 뒤로가기 두번 종료 (BackPressCloseHandler)

2017. 5. 22. 18:30BASIC/android

backPressCloseHandler = new BackPressCloseHandler(this); // back 이벤트1. BackPressCloseHandler 클래스 생성


import android.app.Activity;
import android.widget.Toast;

public class BackPressCloseHandler {

private long backKeyPressedTime = 0;
private Toast toast;

private Activity activity;

public BackPressCloseHandler(Activity context) {
this.activity = context;
}

public void onBackPressed() {
if (System.currentTimeMillis() > backKeyPressedTime + 2000) {
backKeyPressedTime = System.currentTimeMillis();
showGuide();
return;
}
if (System.currentTimeMillis() <= backKeyPressedTime + 2000) {
activity.finish();
toast.cancel();
}
}

public void showGuide() {
toast = Toast.makeText(activity,
"\'뒤로\'버튼을 한번 더 누르시면 종료됩니다.", Toast.LENGTH_SHORT);
toast.show();
}
}


2. 적용하려는 클래스에 넣기 ( 빨간 바탕으로된 소스 추가 )


public class Login extends AppCompatActivity {

private BackPressCloseHandler backPressCloseHandler;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_login);         backPressCloseHandler = new BackPressCloseHandler(this); // back 이벤트

}

@Override
public void onBackPressed() {
//super.onBackPressed();
backPressCloseHandler.onBackPressed();
}
}