โ CountDownTimer
https://developer.android.com/reference/android/os/CountDownTimer
// 30์ด๋ฅผ 1์ด ๋จ์๋ก ์นด์ดํธ ๋ค์ด ํ๋ ์นด์ดํธ๋ค์ดํ์ด๋จธ
new CountDownTimer(30000, 1000) {
public void onTick(long millisUntilFinished) {
mTextField.setText("seconds remaining: " + millisUntilFinished / 1000);
}
public void onFinish() {
mTextField.setText("done!");
}
}.start();
// ์์ฑ์
CountDownTimer(long millisInFuture, long countDownInterval)
// method๋ค
cancel () - ์นด์ดํธ ๋ค์ด ์ทจ์
onFinish() - ์๊ฐ์ด ๋ค ๋๋ฉด callback ๋ง๋ฃ
onTick(long millisUntilFinished)
start()- ์นด์ดํธ ๋ค์ด ์์
// ์กํฐ๋นํฐ๊ฐ onPause ๋ ๋, ํ์ด๋จธ๋ฅผ ๋ฉ์ถ์ด ๋๊ณ ์ถ์๋ค. ๊ทธ๋ด ๋๋ ์ด๋ป๊ฒ ์์ฑํ๋?
1) ํด๋์ค ์ ์ฒด์์ ์ธ ์ ์๋ bool๊ฐ IsPause ์ ์.
2) ๋๊ฐ์ ์นด์ดํธ ํ์ด๋จธ ์ ์.(countDownTimer , countDownTimeronResume)
3) onResume()์ IsPause๊ฐ false ์ผ๋๋, ์๋ ์๊ฐ ๋ถํฐ ์นด์ดํธ ๋ค์ด ํ๋ ํ์ด๋จธ(countDownTimer) ์ฌ์ฉ, true์ผ ๊ฒฝ์ฐ ๋จ์ ์๊ฐ ๋ถํฐ ์นด์ดํธ ๋ค์ดํ๊ฒ ํ๋ ํ์ด๋จธ(countDownTimeronResume) ์ฌ์ฉ. ๋๊ฐ์ ํ์ด๋จธ๋ฅผ onResume()์ ์ค์ ํ๊ณ if~else~๋ฌธ์ ๊ฑฐ์น๋ค์์ ์คํ.
4) onPause()์์ ์๋ ์๊ฐ ๋ถํฐ ์นด์ดํธ ๋ค์ด ํ๋ ํ์ด๋จธ(countDownTimer)๊ฐ null ์ด ์๋๋ฉด ์ด ํ์ด๋จธ์ ์นด์ดํธ ํ์ด๋จธ๋ฅผ ์ทจ์ํ๊ณ (cancel()), IsPause๋ฅผ ture ๊ฐ์ผ๋ก ๋ฐ๊พผ๋ค. ๋ง์ฝ ๋จ์ ์๊ฐ ๋ถํฐ ์นด์ดํธ ๋ค์ดํ๊ฒ ํ๋ ํ์ด๋จธ(countDownTimeronResume)๊ฐ null ์ด ์๋๋ฉด ์ด ํ์ด๋จธ๋ฅผ ์ทจ์ํ๋ค.
โ Activity, LifeCycle
https://siadaddy-cordinglife.tistory.com/12
https://re-build.tistory.com/4
Q) Main Activity์์ Detail Activity๋ฅผ ํธ์ถ ํ์ ๋, ๋ผ์ดํ ์ฌ์ดํด์ด ํธ์ถ๋๋ ์์?
[Main] onPause
[Detail] onCreate
[Detail] onStart
[Detail] onResume
[Main] onStop
Q) Detail Activity๋ฅผ ์ข ๋ฃ ํ Main Activity ๋ณด์ฌ์ง ๋ ๋ผ์ดํ ์ฌ์ดํด ํธ์ถ ์์?
[Detail] onPause
[Main] onRestart
[Main] onStart
[Main] onResume
[Detail] onStop
[Detail] onDestroy
Q) ์กํฐ๋นํฐ๊ฐ ์ข ๋ฃ๋๋ ๊ฒฝ์ฐ?
- ์ฌ์ฉ์๊ฐ ๋ค๋ก๊ฐ๊ธฐ ๋ฒํผ์ ๋๋ฌ์ ์กํฐ๋นํฐ ์ข ๋ฃํ ๊ฒฝ์ฐ
- ์กํฐ๋นํฐ๊ฐ ๋ฐฑ๊ทธ๋ผ์ด๋์ ์์ ๋ ์์คํ ๋ฉ๋ก๋ฆฌ๊ฐ ๋ถ์กฑํด์ง ๊ฒฝ์ฐ
- ์ธ์ด ์ค์ ๋ณ๊ฒฝ ์
- ํ๋ฉด ๊ฐ๋ก/์ธ๋ก ํ์ ์
- ํฐํธ ํฌ๊ธฐ๋ ํฐํธ ๋ณ๊ฒฝ ์
โถ onSaveInstanceState ๋ฉ์๋ ์ด์ฉํด์ ์กํฐ๋นํฐ ์ข ๋ฃํ ๋ ๋ฐ์ดํฐ๋ฅผ ์ ์ฅํ ์ ์๋ค. (์๋ url ์ฐธ๊ณ )
https://snowdeer.github.io/android/2017/08/16/android-on-save-instance-state/
- onRestart๋ Activity๊ฐ ์ ์ง ํ onStop์ด ๋ถ๋ฆฐ ํ์ ๋ค์ ์์ํ๊ธฐ ์ ์ ํธ์ถ๋๋ค. ๋ฐ๋ผ์ onStop์ด ๋ถ๋ฆฌ์ง ์์๋ค๋ฉด onRestart๋ ํธ์ถ๋์ง ์๋๋ค.
- onResume์ ํญ์ ๋ถ๋ฆฐ๋ค. ์ฌ์ฉ์์ ์์ค์์ฉ์ ํ๊ธฐ ์ง์ ์ ํธ์ถ. ์คํ์ ์ต์์์ ์์น. ๊ธฐ์กด ์กํฐ๋นํฐ๊ฐ ํ๋ฉด์ ๋ณด์ด๋ฉด onPause์์ ์ฒ๋ฆฌํ๊ณ ๋ณด์ด์ง ์์ผ๋ฉด onStop์์ ์ฒ๋ฆฌํ๋ค.
- ์กฐ๊ธ์ด๋ผ๋ ์กํฐ๋นํฐ ํ๋ฉด์ด ๋จ์์์ ๋ onPause(), ์์ ํ ๊ฐ๋ ค์ ๋ ์ด์ ๋ณด์ด์ง ์์ ๋, onStop().
- ์ฑ์ด ๋ค์ ์คํ์ด ๋ ๋, ๋ฌด์กฐ๊ฑด ์คํํด์ผ ํ๋ ๊ฒ์ onResume์์ ์คํํด์ผํ๋ค.
Q) ํ๋๊ทธ ๋จผํธ๋?
https://tedrepository.tistory.com/5
'Android' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
Android::๋ฆฌ์คํธ๋ทฐ์ฌ์ฉํด์ ๋ฉ๋ชจ์ฅ๋ง๋ค๊ธฐ (11) | 2020.07.24 |
---|---|
Android::Java ๋ฌธ๋ฒ +๏ผ (0) | 2020.07.21 |
Android::LifeCycle ํ์ฉํ์ฌ App๋ง๋ค๊ธฐ (0) | 2020.07.21 |
Android::Awesome UI (0) | 2020.07.14 |
Android:: RelativeLayout ๊ณผ ConstraintLayout์ ์ฐจ์ด (0) | 2020.07.07 |
๋๊ธ