반응형
Notice
Recent Posts
Recent Comments
Link
NOW OR NEVER
[Android] Thread & Fragment 본문
반응형
Thread
- 동시 처리는 동기처리이고 순차적으로 처리는 비동기처리라고 한다, thread는 동기처리이다
- 네트워크는 오류가 발생할 가능성이 매우 높기 때문에 돌발상황이 있을 수 있다. 그래서 해당 부분은 실행에 대한 안정성을 확보 하기 위해 해당 부분은 thread로 관리 한다.
- 예외는 예측이 가능한 오류
- main thread는 안드로이드 OS에 의해 관리
- kotlin에서는 runOnUiThread(화면 관리 요소 처리) 별도 작성 필요 없이 main thread로 구현 가능 하다
- 개발자가 만드는 thread는 누적 thread이다.
Fragment
- new- fragment - fragment(blank)
- 화면이 여러 개 일때 fragment가 필요하다
- 여러 화면을 가지고 있는 애플리케이션은 여러 Activity를 가지고 있는 애플리케이션
- 관리하는 activity 미리 변수로 받아놓기
- replaceFragment(fragment이름, addToBackStack여부, 애니메이션여부)
- res-layout - new
- main activity
- main acitivity layout에 fragmentContainerView 배치(name은 비우기)
- fragment 패키지는 androidx 로 시작하는 패키지로 임포트 한다.
- main activity가 fragment를 관리한다. 그래서 fragment 관련 변수들을 main activity에 선언한다.
- main activity에 작성하는 fragment basic code(onCreate 밑에 작성)
// 지정한 Fragment를 보여주는 메서드
fun replaceFragment(name:FragmentName, addToBackStack:Boolean, animate:Boolean){
// Fragment 교체 상태로 설정한다.
val fragmentTransaction = supportFragmentManager.beginTransaction()
// 새로운 Fragment를 담을 변수
var newFragment:Fragment? = null
// 이름으로 분기한다.
when(name){
FragmentName.FRAGMENT_MAIN -> {
// Fragment 객체를 생성한다.
newFragment = MainFragment()
}
FragmentName.FRAGMENT_INPUT -> {
newFragment = InputFragment()
}
FragmentName.FRAGMENT_RESULT -> {
}
}
if(newFragment != null) {
// Fragment를 교채한다.
fragmentTransaction.replace(R.id.mainContainer, newFragment)
if (animate == true) {
// 애니메이션을 설정한다.
fragmentTransaction.setTransition(FragmentTransaction.TRANSIT_FRAGMENT_OPEN)
}
if (addToBackStack == true) {
// Fragment를 Backstack에 넣어 이전으로 돌아가는 기능이 동작할 수 있도록 한다.
fragmentTransaction.addToBackStack(name.str)
}
// 교체 명령이 동작하도록 한다.
fragmentTransaction.commit()
}
}
// Fragment를 BackStack에서 제거한다.
fun removeFragment(name:FragmentName){
supportFragmentManager.popBackStack(name.str, FragmentManager.POP_BACK_STACK_INCLUSIVE)
}
--------------------------------------------------
enum class FragmentName(var str:String){
}
etc
- Activity : 눈에 보이는 화면을 관리하는 실행단위
- Service : 눈에 보이지 않는 실행단위
- BroadCast Receiver : 시스템에서 발생하는 사건에 대해 처리가 필요할 경우
- res폴더에 들어가는 파일과 폴더 명은 무조건 다 소문자여야 한다.
- recycler view에 좌우 여백이 있으면 보기 안좋아서 꽉 차게 두는 것이 일반 적이다
- enum 작성 시 맨 뒤 아이템에 쉼표 작성 시 코틀린은 에러 안나지만 자바는 에러난다.
'Android' 카테고리의 다른 글
[Android] ToolBar & coordinate Layout (0) | 2023.06.28 |
---|---|
[Android] Emulator is already running Error & 안드로이드 Tips (0) | 2023.06.27 |
[Android] Android Message - Notification (0) | 2023.06.23 |
[Android] 다른 앱에서의 activity 사용 & Android Message (0) | 2023.06.22 |
[Android] Parcelable (0) | 2023.06.19 |