이제 ~ 뭐해볼거냐면
핸들러에 재밌는 함수들이 있다.
얼마 후에 실행해 이런것들...
그래서 그러한 처리들을 할 수가 있다.
핸들러는 반복적으로 처리하는 경우라든지, 일정시간 후에 시작하는 작업을 이렇게 처리할 수 있다.
TimeOut 처리 핸들러 쓰기
public class TimeoutActivity extends AppCompatActivity {
public static final int MESSAGE_BACK_KEY_TIMEOUT = 1;
public static final int TIMEOUT_TIME = 2000;
//back키를 누르는 핸들러 이벤트 처리
Handler mHandler = new Handler(Looper.getMainLooper()) {
@Override
public void handleMessage(Message msg) {
super.handleMessage(msg);
switch (msg.what) {
case MESSAGE_BACK_KEY_TIMEOUT :// 값이 1이면 true
isBackPressed = false;
break;
}
}
};
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_timeout);
}
boolean isBackPressed = false;
@Override
public void onBackPressed() {
// super.onBackPressed();
if (!isBackPressed) {
Toast.makeText(this, "one more back press", Toast.LENGTH_SHORT).show();
isBackPressed = true;
mHandler.sendEmptyMessageDelayed(MESSAGE_BACK_KEY_TIMEOUT, TIMEOUT_TIME);
//여기서 핸들러로 처리 안해주면
백키를 누르고 토스트가 없어진 뒤 눌러도 종료되므로 토스트메세지의 지속시간인 2초 후 isBack값을 초기화 시켜주려고핸들러를 쓰는거다.
} else {
mHandler.removeMessages(MESSAGE_BACK_KEY_TIMEOUT);// 아닐경우 핸들러 메세지를 지워 줘야 하므로, 지금 여기서 없애 주는 것이다.
finish();
}
}
}
'Android' 카테고리의 다른 글
[8일차] 애니메이션 (0) | 2016.07.22 |
---|---|
[8일차] 핸들러카운트다운 실습 (0) | 2016.07.22 |
[8일차] AsncTask (0) | 2016.07.22 |
[8일차]핸들러 다루기 (0) | 2016.07.22 |
[8일차] 안드로이드 쓰레드 동작방식 (0) | 2016.07.22 |