์ผ | ์ | ํ | ์ | ๋ชฉ | ๊ธ | ํ |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
- android recyclerview
- ์๋๋ก์ด๋ ์๋ช ์ฃผ๊ธฐ
- ์๋๋ก์ด๋ ์๋๋ก๊ทธ์ธ
- ์๋๋ก์ด๋
- ๋ฆฌ์ฌ์ดํด๋ฌ๋ทฐ
- ์๋๋ก์ด๋ ViewPager
- recyclerview
- Android
- Bottom Navigation
- kotlin
- ์๋๋ก์ด๋ RecyclerView
- fragment
- AAC
- ์๋๋ก์ด๋ Bottom Navigation
- MVVM
- ์๋ช ์ฃผ๊ธฐ
- SharedPreferences
- android clipToPadding
- andoid
- android itemDecoration
- ViewPager
- MVC
- Navigation
- android startActivityForResult
- ์ฝํ๋ฆฐ
- MVP
- activity
- android SharedPreferences
- Today
- Total
my repository
Android :: Activity, Fragment ์๋ช ์ฃผ๊ธฐ ๋ณธ๋ฌธ
๐กActivity LifeCycle
Activity๋ ?
- ํ๋ฉด์ ํ์๋๋ UI ๊ตฌ์ฑ์ ์ํด ๊ฐ์ฅ ๊ธฐ๋ณธ์ด ๋๋ ์์
- ์๋๋ก์ด๋ ์ฑ์ ํ๋ฉด์ UI๋ฅผ ํ์ํ๊ธฐ ์ํด ์ต์ ํ๋์ ์กํฐ๋นํฐ๋ฅผ ๊ฐ์ ธ์ผํ๋ฉฐ, ์ฑ ์คํ ์ ์ง์ ๋ ์กํฐ๋นํฐ๋ฅผ ์คํํ์ฌ ์ฌ์ฉ์์๊ฒ UI๋ฅผ ๋ณด์ฌ์ค๋ค.
- ์ฌ์ฉ์๋ค์ด ์ฑ์ ์ฌ์ฉํ ๋ ํ๋ฉด์ ์ ํํ ๋ ๋ง๋ค ์กํฐ๋นํฐ๋ ์คํ, ์ผ์์ค์ง, ์ค์ง์ ์ํ๋ฅผ ๊ฐ์ง๋ค.
- ์คํ : ํ๋ฉด ์์ ์กํฐ๋นํฐ๊ฐ ํ์ฌ ๋ณด์ด๊ณ ์๋ ์ํ
- ์ผ์์ค์ง : ์ฌ์ฉ์์๊ฒ ์กํฐ๋นํฐ๊ฐ ๋ณด์ด๊ธด ํ์ง๋ง ๋ค๋ฅธ ์กํฐ๋นํฐ์ ํฌ์ปค์ค๊ฐ ๊ฐ์๋ ๊ฒฝ์ฐ
- ์ค์ง : ๋ค๋ฅธ ์กํฐ๋นํฐ๊ฐ ์คํ๋๊ณ ์์ด ํด๋น ์กํฐ๋นํฐ๊ฐ ๋ณด์ด์ง ์๋ ์ํ
=> ์ฆ, ์กํฐ๋นํฐ์ ์ํ๋ ์ฌ์ฉ์์๊ฒ ๋ณด์ด๋์ง ์๋ณด์ด๋์ง์ ๋ฐ๋ผ ๊ฒฐ์ ๋๋ ๊ฒ ๊ฐ๋ค.
๊ทธ๋ ๋ค๋ฉด, ์กํฐ๋นํฐ๋ ์ด๋ค ๊ตฌ์กฐ๋ก ์ฌ์ฉ์์๊ฒ ๋ณด์ด๊ฒ ๋๋ ๊ฒ์ผ๊น?
=> '์คํ' ๊ตฌ์กฐ๋ฅผ ๊ฐ๋๋ค. ๋จผ์ ๋ค์ด์จ ์์๋๋ก ์์ฌ์ ๋น ์ ธ๋๊ฐ ๋๋ ๊ฐ์ฅ ์์ ์๋ ๋ฐ์ดํฐ๊ฐ ๋จผ์ ๋น ์ ธ๋๊ฐ๋ ๊ฒ์ด๋ค. (ํ์ ์ ์ถ)
์ด์ฒ๋ผ, ์กํฐ๋นํฐ๋ ๋ฉ๋ชจ๋ฆฌ์ ๋ค์ด๊ฐ์ ์๋ฉธ๋๊ธฐ๊น์ง์ '์๋ช ์ฃผ๊ธฐ'๋ฅผ ๊ฐ์ง๊ณ ์๋ค.
onCreate()
- ์กํฐ๋นํฐ๊ฐ ์์ฑ๋ ๋ ํธ์ถ๋์ด, ์กํฐ๋นํฐ ๋ด ํ์ํ ๋ชจ๋ ์์๋ค(button, edittext ๋ฑ)์ ์ด ๋ฉ์๋ ๋ด์์ ์ด๊ธฐํ ์ํฌ ์ ์๋ค.
- UI ๋ ์ด์์์ ์ฝ๋ ์์ผ๋ก ๋์ํ๊ฒ ํ๊ธฐ ์ํ์ฌ setContentView()๋ฅผ ํตํด ์ ์ํด์ฃผ๋ ๋ฉ์๋์ด๋ค.
class MainActivity : AppCompatActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
}
}
onStart()
- ์กํฐ๋นํฐ๊ฐ ํ๋ฉด์ ๋ณด์ด๊ธฐ ์ง์ ์ ํธ์ถ๋๋ ๋ฉ์๋
- ์ด ๋จ๊ณ๋ ๋งค์ฐ ๋น ๋ฅด๊ฒ ๋๋๊ณ , onResume() ์ํ๋ก ๋ค์ด๊ฐ๋ค.
onResume()
- ์กํฐ๋นํฐ๊ฐ ํ๋ฉด ์์ ๋ณด์ฌ์ง๊ฒ ๋๋ฉด์ ์ฌ์ฉ์๋ก๋ถํฐ ์ด๋ ํ ๋์๋ ๋ฐ์ง ์์์ ๋ ํธ์ถ๋๋ ๋ฉ์๋
- ์ด ์ํ์ ๋ค์ด๊ฐ์ ๋ ์ฑ์ด ์ฌ์ฉ์์ ์ํธ์์ฉ์ ํ๋ค.
- ์ด๋ ํ ์ด๋ฒคํธ๊ฐ ๋ฐ์ํ์ฌ ์ฑ์์ ํฌ์ปค์ค๊ฐ ๋ ๋ ๋๊น์ง ์ด ์ํ์ ๋จธ๋ฌด๋ฅธ๋ค.
onPause()
- ์ผ์์ ์ง ์ํ
- ์ฑ์ ์ฌ์ฉ ์ค์ ์ ํ๊ฐ ์ค๊ฑฐ๋, ๋ค๋ฅธ ์กํฐ๋นํฐ๋ก ์ด๋ํ๋ ๋์์ด ๋ฐ์ํ๋ฉด onResume() ์ํ์ ์๋ ์กํฐ๋นํฐ๋ onPause()๋ฅผ ํธ์ถํ๋ค.
- ๊ทธ๋ฌ๋ค ์ ์ ๊ฐ ๋ค์ ํด๋น ์กํฐ๋นํฐ๋ก ๋์์ค๋ฉด, ๋ค์ onResume()์ ํธ์ถํ๋ค.
- ์ฃผ์ํ ์ : ์ฌ๊ธฐ์ ๋ฐ์ดํฐ๋ฅผ ์ ์ฅํ๊ฑฐ๋, ๋คํธ์ํฌ๋ฅผ ํธ์ถํ๊ณ , ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ฅผ ์คํํ๋ฉด ์๋จ → ์ด๋ฅผ ์ํํ ๋งํผ ์ถฉ๋ถํ ์๊ฐ์ ๊ฐ์ง๊ณ ์์ง ์์ → ์ด์ ๊ฐ์ ์์ ์ onStop()์์ !
onStop() / onRestart() / onStart()
- onPause()๋ ๋งค์ฐ ์งง๊ธฐ ๋๋ฌธ์, ์ ์ ์๊ฒ ๋ค๋ฅธ ์กํฐ๋นํฐ๊ฐ ๋ณด์ด๊ณ ๋์ด์ ํด๋น ์กํฐ๋นํฐ๊ฐ ํ๋ฉด์ ๋ณด์ด์ง ์๊ฒ ๋๋ฉด onStop()์ด ํธ์ถ๋๋ค.
- onStop()์์ ์ ์ ๊ฐ ๋ค์ ํด๋น ์กํฐ๋นํฐ๋ก ๋์์ค๊ฒ ๋๋ฉด, onRestart()๋ฅผ ๊ฑฐ์ณ์, onStart()๊ฐ ํธ์ถ๋๋ค.
- ํ์ง๋ง, ์ ์ ๊ฐ ์กํฐ๋นํฐ๋ฅผ finish() ํ๊ฑฐ๋, ์์คํ ์ด ๋ฉ๋ชจ๋ฆฌ ๋ถ์กฑ์ผ๋ก ํด๋น ์กํฐ๋นํฐ๋ฅผ finish() ์ํจ๋ค๋ฉด, onDestroy()๋ฅผ ํธ์ถํ๊ณ ์ฌ๋ผ์ง๋ค.
onDestroy()
- ์กํฐ๋นํฐ๊ฐ ์ข ๋ฃ๋ ๋ ํธ์ถ๋๋ ๋ฉ์๋์ด๋ค.
๐กFragment LifeCycle
Fragment๋ ?
- ์กํฐ๋นํฐ ๋ด์ ์์ฑ๋๋, UI ๊ตฌ์ฑ์ ์ฌ๋ฌ ๊ฐ์ ๋ชจ๋ ๋จ์๋ก ์์ฑํ ์ ์๋๋ก ํด์ฃผ๋ ๊ธฐ๋ฅ
- ํ ๋ฒ ์์ฑ๋ fragment๋ ์ฌ๋ฌ ์กํฐ๋นํฐ์์ ์ฌ์ฌ์ฉ์ด ๊ฐ๋ฅํ๋ฏ๋ก UI ๊ตฌ์ฑ์ ์์๋๋ ์์ ๋์ ๋ง์ ๋ถ๋ถ ๊ฐ์์ํฌ ์ ์๋ค.
- ํ๋๊ทธ๋จผํธ๋ ์์ฒด ์๋ช ์ฃผ๊ธฐ๋ฅผ ๊ฐ์ง๊ณ , ์์ฒด ์ ๋ ฅ ์ด๋ฒคํธ๋ฅผ ๋ฐ์ผ๋ฉฐ, ์กํฐ๋นํฐ ์คํ ์ค์ ์ถ๊ฐ ๋ฐ ์ ๊ฑฐ๊ฐ ๊ฐ๋ฅํ ์กํฐ๋นํฐ์ ๋ชจ๋์ ์น์ ์ด๋ผ๊ณ ์๊ฐํ๋ฉด ๋ฉ๋๋ค. (๋ค๋ฅธ ์กํฐ๋นํฐ์ ์ฌ์ฌ์ฉํ ์ ์๋ "ํ์ ์กํฐ๋นํฐ"์ ๊ฐ์ ๊ฐ๋ ) - ๊ตฌ๊ธ
๋ค์์ ํ๋๊ทธ๋จผํธ์ ์๋ช ์ฃผ๊ธฐ์ด๋ค.
onAttach()
- ํ๋๊ทธ๋จผํธ๊ฐ ์กํฐ๋นํฐ์ attach ๋ ๋ ํธ์ถ๋๋ค.
- ํธ์ถ๋๋ฉด์ ์ธ์๋ก context๊ฐ ์ฃผ์ด์ง๋ค.
- ์์ง ํ๋๊ทธ๋จผํธ๊ฐ ์๋ฒฝํ๊ฒ ์์ฑ๋ ์ํ๋ ์๋๋ค.
onCreate()
- ์กํฐ๋นํฐ์์ ํ๋๊ทธ๋จผํธ๋ฅผ ํธ์ถํ์ฌ ์์ฑ๋ ๋ ํธ์ถ๋๋ค.
- ์กํฐ๋นํฐ์ onCreate()์ ๋ง์ฐฌ๊ฐ์ง๋ก, ์ฌ๊ธฐ์ ์ด๊ธฐํ์์ ์ ์คํํ๋ฉด ๋๋ค.
- ํ๋๊ทธ๋จผํธ๋ฅผ ์์ฑํ๋ฉฐ ์กํฐ๋นํฐ์์ ๋๊ฒจ์ค ๊ฐ์ด ์๋ค๋ฉด ์ฌ๊ธฐ์ ๋ณ์์ ๋ฃ์ด์ฃผ๋ฉด ๋๋ค.
- ํ์ง๋ง, ์กํฐ๋นํฐ์๋ ๋ฌ๋ฆฌ ํ๋๊ทธ๋จผํธ์ onCreate()์์๋ view์ ๊ด๋ จ๋ UI ์์ ์ ํ ์ ์๋ค.
onCreateView()
- ํ๋๊ทธ๋จผํธ์์ UI๋ฅผ ๊ทธ๋ฆด ๋ ํธ์ถ๋๋ ์ฝ๋ฐฑ์ด๋ค.
- Layout์ inflateํด์ ๋ฐํํด์ฃผ๊ณ , view ๊ฐ์ฒด๋ฅผ ์ป์ ์ ์์ผ๋ฏ๋ก UI์ ๊ด๋ จ๋ ๋ฐ์ธ๋ฉ ์์ ์ ์คํํ๋ฉด ๋๋ค.
- onCreateView์ ๋งค๊ฐ๋ณ์๋ก ์ ๋ฌ๋๋ container๊ฐ ์กํฐ๋นํฐ์ ViewGroup์ด๋ฉฐ, ์ฌ๊ธฐ์ ํ๋๊ทธ๋จผํธ๊ฐ ์์นํ๊ฒ ๋๋ค.
- ๋ ๋ค๋ฅธ ๋งค๊ฐ๋ณ์์ธ savedInstanceState ๋ Bundle ๊ฐ์ฒด๋ก, ํ๋๊ทธ๋จผํธ๊ฐ ์ฌ๊ฐ๋๋ ๊ฒฝ์ฐ ์ด์ ์ํ์ ๋ํ ๋ฐ์ดํฐ๋ฅผ ์ ๊ณตํ๋ค.
override fun onCreateView(
inflater: LayoutInflater, container: ViewGroup?,
savedInstanceState: Bundle?
): View? {
// Inflate the layout for this fragment
return inflater.inflate(R.layout.fragment_search_theme, container, false)
}
onActivityCreated()
- ์กํฐ๋นํฐ์์ onCreate() ์คํ์ด ๋๋ ํ ํธ์ถ๋๋ค.
- ์กํฐ๋นํฐ์ ํ๋๊ทธ๋จผํธ์ ๋ทฐ๊ฐ ๋ชจ๋ ์์ฑ๋๊ณ , ์ฐ๊ฒฐ๋ ์ํ
- view์ ๋ณ๊ฒฝ ์์ ์ด ๊ฐ๋ฅํ๋ค.
onStart()
- ์กํฐ๋นํฐ์ ๋ง์ฐฌ๊ฐ์ง๋ก ํ๋๊ทธ๋จผํธ๊ฐ ํ๋ฉด์ ๋ณด์ฌ์ง๊ธฐ ์ง์ ๋น ๋ฅด๊ฒ ์คํ๋๋ค.
- ์ฌ๊ธฐ์ ์กํฐ๋นํฐ๋ ์์๋จ ์ํ
onResume()
- ์กํฐ๋นํฐ์ ๋ง์ฐฌ๊ฐ์ง๋ก ํ๋๊ทธ๋จผํธ๊ฐ ํ๋ฉด์ ๋ณด์ฌ์ง๋ฉฐ, ์ฌ์ฉ์์ ์ํธ์์ฉ์ด ๊ฐ๋ฅํ ์์
- ์ด๋ ํ ์ด๋ฒคํธ๊ฐ ๋ฐ์ํ์ฌ ํ๋๊ทธ๋จผํธ๊ฐ ๊ฐ๋ ค์ง๊ธฐ ์ ๊น์ง ์ด ์ํ๊ฐ ์ ์ง๋๋ค.
onPause()
- ๋ถ๋ชจ ์กํฐ๋นํฐ๊ฐ ์๋ ๋ค๋ฅธ ์กํฐ๋นํฐ๊ฐ ์๋ก ์ฌ๋ผ์ค๊ฑฐ๋, ๋ค๋ฅธ ํ๋๊ทธ๋จผํธ๊ฐ add๋๋ ๊ฒฝ์ฐ ์ผ์์ ์ง ์ํ๋ก ๋ค์ด๊ฐ๋ค.
- UI ๊ด๋ จ ์ฒ๋ฆฌ๋ฅผ ์ ์งํ๊ณ , ์ค์ํ ๋ฐ์ดํฐ๋ฅผ ์ ์ฅํ๋ค.
onStop()
- ํ๋๊ทธ๋จผํธ๊ฐ ์์ ํ ๊ฐ๋ ค์ง๋ ๊ฒฝ์ฐ, onStop()์ด ์คํ๋๋ค.
- ์์คํ ์์ onStateInstance()๋ฅผ ํธ์ถํ์ฌ UI์ ์ํ๋ฅผ ์ ์ฅํ๋ฏ๋ก, ์กํฐ๋นํฐ๋ฅผ ๋ค์ ๋์ฐ๋ฉด ์ด์ ์ํ๊ฐ ๊ทธ๋๋ก ๋ณด์ฌ์ง๋ค.
onDestroyView()
- ํ๋๊ทธ๋จผํธ์ ๊ด๋ จ๋ view๊ฐ ์ ๊ฑฐ๋ ๋ ์คํ๋๋ค.
- ์กํฐ๋นํฐ์์ ํ๋๊ทธ๋จผํธ ์์ฑ ์ addToBackStack() ์ ์์ฒญํ์ ๊ฒฝ์ฐ, onDestroy()๋ฅผ ํธ์ถํ์ง ์๊ณ ์ธ์คํด์ค๊ฐ ์ ์ฅ๋์ด ์๋ค๊ฐ ํ๋๊ทธ๋จผํธ๋ฅผ ๋ค์ ๋ถ๋ฅผ ๋ onCreateView()๋ฅผ ์คํํ์ฌ ๋ค์ ํ๋ฉด์ ๋ณด์ฌ์ง๊ฒ ํ๋ค.
onDestroy()
- ํ๋๊ทธ๋จผํธ๊ฐ ์์ฑ๋ ๋ onCreate → onCreateView๋ก ์ด๊ธฐํํ ๋ฆฌ์์ค๋ค๊ณผ ๋ทฐ๋ฅผ ์์๋๋ก ํธ์ถํ๋๋ฐ, Destroyํ ๋๋ ๋ฐ๋๋ก onDestroyView → onDestroy ์์ผ๋ก view๋ฅผ ์ ๊ฑฐํ๊ณ , onDestroy()๋ฅผ ํธ์ถํ๋ค.
- view๊ฐ ์ ๊ฑฐ๋ ํ ํ๋๊ทธ๋จผํธ๊ฐ ์์ ํ ์๋ฉธ๋๊ธฐ ์ ์ ํธ์ถ๋๋ค.
onDetach()
- ํ๋๊ทธ๋จผํธ๊ฐ ์์ ํ ์๋ฉธ๋๊ณ , ์กํฐ๋นํฐ์์ ์ฐ๊ฒฐ๋ ๋์ด์ง ๋ ์คํ๋๋ค.
onCreateView ์ onViewCreated
override fun onCreateView(
inflater: LayoutInflater, container: ViewGroup?,
savedInstanceState: Bundle?
): View? {
// Inflate the layout for this fragment
return inflater.inflate(R.layout.fragment_search_theme, container, false)
}
override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
super.onViewCreated(view, savedInstanceState)
}
- onViewCreated๋ onCreateView์์ return ํด์ค view๋ฅผ ๊ฐ์ง๊ณ ์๋ค. ⇒ ์ฆ, ๋ทฐ๊ฐ ์์ ํ ์์ฑ๋ ๊ฒฝ์ฐ
- ์ฐจ์ด์ ?
- onCreateView ๋ ๋ทฐ๋ฅผ ๋ง๋ค ๋ ์คํํ ๋ด์ฉ์ด ๋ค์ด๊ฐ๊ณ ,
- onViewCreated ๋ ๋ทฐ๊ฐ ๋ง๋ค์ด์ง๋ฉด ์คํํ ๋ด์ฉ์ด ๋ค์ด๊ฐ๋ค.
'IT > Android (Kotlin)' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
Android :: MVC, MVP ๊ทธ๋ฆฌ๊ณ MVVM (0) | 2022.03.01 |
---|---|
Android :: JetPack - AAC Navigation Component ์ฌ์ฉ๋ฒ (0) | 2022.02.22 |
Android :: RecyclerView ๋ฆฌ์ฌ์ดํด๋ฌ๋ทฐ ์ฌ์ฉ๋ฒ (0) | 2020.06.12 |
Android :: Bottom Navigation์ ViewPager ์ฐ๊ฒฐ (0) | 2020.06.10 |
Android :: SharedPreferences๋ฅผ ์ด์ฉํ ์๋ ๋ก๊ทธ์ธ ๊ธฐ๋ฅ (0) | 2020.06.10 |