2021. 11. 10. 02:31ㆍDiary/300~400
< 안드로이드 개발 팁 >
1. 안드로이드 브로드캐스트리시브는 스타트액티비티를 못하게되어있다.
2. 실제 상용화에서는
notification만 사용하면 안된다.
data도 사용한다.
( 묵시적 인텐트 사용 )
3. 묵시적 인텐트
이거는 api 통신할 때 많이 쓰일 것으로 보인다.
또한 Push에서도 겁나 쓰인다.
특정 Data를 받을 때,
맨 앞의 형태에 따라서 인텐트를 전환시킬 수 있다.
인텐트에는 앱 내부의 인텐트도 있지만
웹, 전화, 지도 등등 다양한 외부 인텐트로도 이동시킬 수 있다.
이를 통해 Push를 통해 들어온 값에 따라
특정 인텐트로 사용자를 보내버릴 수 있다.
즉, 메뉴처럼 인텐트를 전환시키고 싶을 때 사용한다.
4. 일반적인 FCM은 백그라운드에 있는 경우에만 작동한다. 포그라운드에 있는 경우 FirebaseMessagingService 확장을 구현해야 한다. onMessageReceived 메소드에서 click_action 타겟으로 수동으로 이동해야 한다.
5. 데이터는 최대한 프레그먼트에 넣어주면안된다.
6. ui가 선두. 우선되어야한다.
7. 라이브데이터의 value, postvalue 차이점 검색해보기
< 코루틴 정리 >

1. use사용해서 자동 클로즈. 저 함수는 계속 쓰레드를 생성하기에 종료제어필요함.
2. withcontext를 통해 쓰레드 스위치가 가능함. 직접 해봐야 알 수 있을듯
3. 하나의 코루틴에서 쓰레드 전환. 즉 메인쓰레드 코루틴에서 3개의 쓰레드를 스위치하여 사용.
4. 부모 코루틴을 중지하면 자식 코루틴도 중지가된다. 부모 코루틴은 자식 코루틴이 실행완료될때까지 기다린다.
5. 코루틴이 여러개가 실행중일때 사용자가 화면을 나가면 모두 종료해줘야한다. 안그러면 메모리 릭이걸린다.
6. 이를 해결하기 위해서 코루틴스코프에다가 모든 코루틴을 담아서 실행하고. 사용자가 나갈때는 이 코루틴스코프를 중지한다.
7. 디스패쳐 Default는 글로벌스코프 처럼 쓰레드가 생성된다.
8. 그냥 lauch만 사용하면 부모 쓰레드를 상속받아 실행된다. 즉 메인쓰레드에서 사용하면 메인쓰레드에서 동작한다.
9. single어쩌구저쩌구 쓰레드는 매번 새로운 쓰레드를 만들어내기에 종료를 해줘야하는것이고
10. runblocking은 자식 코루틴이 모두 실행완료될때까지 기다려주고. 부모 쓰레드를 상속받는 것으로 보인다. 일단 메인쓰레드에서 동작하는 것만 확인한 상태이다.
'Diary > 300~400' 카테고리의 다른 글
318일차 - MBTI 앱 레거시 코드 개편 (0) | 2021.11.12 |
---|---|
317일차 - DiffUtil (0) | 2021.11.11 |
315일차 - Firebase 호스팅 & 음성 인식 (TTS, STT) (0) | 2021.11.09 |
314일차 - React & Fcm Push 웹페이지 완성 (0) | 2021.11.08 |
313일차 - React & Android Push (0) | 2021.11.07 |