Android/Android
-
[Android] 런치모드(LaunchMode)Android/Android 2022. 10. 19. 22:42
[모든 포스팅은 개인적 공부를 위해 작성된 글입니다] *글을 읽기 전에 알아두면 좋을 것* - 어플리케이션에서 실행되는 액티비티 보관 및 관리 - Stack 형태로 존재(액티비티들이 쌓임) - Flag 사용하여 Task 내 액티비티 흐름 제어 가능 - 액티비티가 어떤 방식으로 실행되어야 하는지에 대한 방식 - 즉, 액티비티가 쌓이는 액티비티 스택에 대한 운영 방식을 설정하는 모드 - 1. Standard(기본값) - A -> B -> C의 순서대로 스택에 액티비티가 쌓여 있을 때 다시 B를 호출하면 A -> B -> C -> B의 순서로 쌓임 - 일반적으로 가장 많이 사용되는 모드 - 2. SingleTop - 현재 호출하려는 액티비티가 현재 작업의 가장 위에 존재하는 경우, 시스템이 새 액티비티 인스턴..
-
[Android] 암시적 인텐트(Intent)와 resolveActivity()Android/Android 2022. 10. 7. 20:34
[모든 포스팅은 개인적 공부를 위해 작성된 글입니다] - 개발자가 startActivity()를 통해 암시적 인텐트를 전달한 했을 때 해당 인텐트를 처리할 앱이 없는 경우 startActivity()가 실패하고 앱이 중단됨 - Intent 객체의 resolveActivity() 호출하여 반환값이 null이 아닌 경우 해당 암시적 인텐트를 처리할 앱이 하나라도 있다는 의미이므로 startActivity()로 호출해도 안전
-
[Android] Handler/Looper 기초Android/Android 2022. 9. 28. 17:02
[모든 포스팅은 개인적 공부를 위해 작성된 글입니다] - 싱글 쓰레드 모델로 동작(메인 쓰레드 이외의 쓰레드에서 UI 업데이트 금지) - UI 동작 무결성 보장 위함(여러 쓰레드에서 하나의 View에 동시에 접근한다면(변경한다면) 어떤 결과 나올지 모름) - 사용자에게 쾌적한 UI 환경을 제공하기 위해 다른 쓰레드가 메인 쓰레드를 블로킹 해서는 안됨 - 서버로부터 데이터 받아온 동작을 수행한 쓰레드로부터 메인 쓰레드로 결과를 전송해야 함(쓰레드간 통신) - 안드로이드에서는 쓰레드간 통신 위해 Handler, Looper 제공 - Handler와 Looper로 멀티 쓰레딩 환경 구축 가능 - 무한루프 돌면서 Handler가 전달 받은 메세지를 Message Queue에 순차적으로 넣어줌 - 동시에, Mes..
-
[Android] Privacy Policy로 플레이 스토어 앱 등록 개인 정보 처리 방침 만들기Android/Android 2022. 9. 21. 22:26
[모든 포스팅은 개인적 공부를 위해 작성된 글입니다] https://www.privacypolicies.com/blog/facebook-apps-privacy-policy-url/ Privacy Policy URL for Facebook Apps - Privacy Policies If you offer functionality to allow your users to sign into your app or website via their Facebook accounts, you'll need to provide a URL to your Privacy Policy. This is according to Facebook's Platform Policy for developers. This article wi..
-
[Android] 의존성 주입(DI/Dependency Injection)Android/Android 2022. 9. 6. 19:47
[모든 포스팅은 개인적 공부를 위해 작성된 글입니다] - 클래스간의 참조(Dependency)를 생성하는 방법은 크게 3가지로 구분됨(예제에서는 클래스 A와 B간의 의존성 생성하는 것으로 함/A가 B 참조) - 구성요소간의 의존 관계가 코드 내부가 아닌 외부 파일을 통해 정의되게 하는 디자인 패턴 - 의존성 : 서비스로 사용할 수 있는 객체 - 주입 : 의존성(서비스)을 사용하려는 객체로 전달하는 것 - 방법 1. 클래스 A 안에서 클래스 B 생성 class A{ private val b = B() } - 단점 : A와 B를 분리하여 테스트 하는 것이 어려움 - 방법 2. 다른 곳에 존재하는 객체 참조 class A{ private val b = context.B() } - SingleTone으로 생성된..
-
[Android] Fragment에서 binding null 처리Android/Android 2022. 8. 31. 20:47
[모든 포스팅은 개인적 공부를 위해 작성된 글입니다] - 구글에서는 Fragment에서 ViewBinding 사용 후 onDestroy에서 null처리 하는 것을 Framgent에서의 ViewBinding 사용법으로 제시하고 있음 - 이유 : Activity와 Fragment 생명주기에 의하면 Fragment의 생명주기가 Activity의 생명주기보다 더 오래 지속되는 것을 알 수 있음 - backStack이나 detach 사용한 경우 fragment View는 사라질지 몰라도 Fragment는 여전히 존재하게 됨 - 이를 이유로 binding을 null처리 하여 메모리 누수를 방지할 수 있도록 함