BASIC/android
■ 뒤로가기 두번 종료 (BackPressCloseHandler)
꽉찬배즙
2017. 5. 22. 18:30
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();
}
}