JAVA (22) 썸네일형 리스트형 [JAVA][Android] GridView와 GridLayout GridView 2차원 스크롤 격자의 항목을 표시하는 ViewGroup으로, 아이템은 ListAdapter로 가져오며 해당 Adapter에서 로드된 아이템만 화면에 노출합니다. GridView는 ListView와 같은 다른 View들보다 재사용성이 높아 성능이 좋습니다. GridLayout 2차원 격자 무늬 형태의 레이아웃으로 행과 열의 집합이며, 아이템은 인덱스로 참조되어 좌상단에서부터 (0,0) 좌표값으로 시작합니다. GridView는 LinearLayout과 RelativeLayout 등 다른 레이아웃들의 정렬과 성능문제를 보완하기 위해 만들어졌습니다. 차이점 비교 [kotlin][Android] collect와 collectLatest의 차이 collect와 collectLatest 는 데이터를 처리하는 방식으로, 코루틴의 데이터 파이프 라인인 Flow에서 발행하는 데이터를 소비할 때 이용한다. 방식은 collect와 collectLatest 두 가지가 있으며 두 방식의 차이를 소개해 보겠다. collect는 순차적으로 데이터를 처리하며, 앞서 들어온 데이터 처리가 모두 끝나기 전까지 다음 데이터를 처리하지 않는다. 발생할 수 있는 이슈는 데이터를 처리하다가 중간에 작업이 원활하지 못해 시간이 무제한으로 소비된다면, 다음에 들어올 데이터들은 영원히 처리될 수 없는 것 등이 있다. collectLatest는 마찬가지로 순차적으로 데이터를 처리하는데, 데이터 처리를 시작하는 것은 순차적이지만, 처리 도중 다음 데이터가 들어온다면 앞서 들어온 데이.. [JAVA][Android] SharedPreferences를 이용하여 XML파일 작성,읽기,수정(삭제) 파일에 글을 작성하거나 로컬DB에 값을 저장하는 등의 작업은 생각보다 빈번하게 일어난다. 이번 포스팅에서는 SharedPreferences 인터페이스를 이용하여 xml 파일에 글을 작성하는 방법에 대해 정리하겠다. https://developer.android.com/reference/android/content/SharedPreferences SharedPreferences | Android Developers developer.android.com 보기 편하게 작업 종류로 메소드를 나누어 작성하였다. 첫번째는 XML파일을 생성하여 내용을 작성하는 방법이다. private void writePref(int content){ SharedPreferences preferences = context.getS.. [JAVA][Android] 화면 구성 변경에 따른 객체 처리 (ConfigurationChanged) 앱의 특성상 화면 방향 회전, 다크/라이트 모드 변경 등에 따라 앱 내의 인스턴스의 상태가 변할 수 있으며, 초기화 되었다가 다시 생성될 수 있다. 이번 포스팅에서는 이와 같은 케이스에서 발생할 수 있는 이슈를 방지할 수 있는 ConfigurationChanged에 대해 설명하겠다. https://developer.android.com/guide/topics/resources/runtime-changes 구성 변경 처리 | Android 개발자 | Android Developers 구성 변경 처리 컬렉션을 사용해 정리하기 내 환경설정을 기준으로 콘텐츠를 저장하고 분류하세요. 일부 기기 설정은 런타임에 변경될 수 있습니다(예: 화면 방향, 키보드 가용성 그리고 사용자 developer.android.com.. [JAVA][Android] AndroidManifest의 usesCleartextTraffic 속성 (http URL로의 접근 제한 해결)(Cleartext HTTP traffic to www.XXX.com not permitted) 안드로이드에서 https 접근과 달리 http URL의 접근은 기본적으로 허용하지 않는 형태이므로, 만약 https를 사용할 수 없는 조건에서 http URL에 접근하려고 한다면 usesCleartextTraffic 속성 정의가 필요하다. (http와 https의 차이) 이러한 예외처리 없이 http URL에 접근하려고 한다면 Cleartext HTTP traffic to www.XXX.com not permitted 등의 에러가 발생할 수 있다. usesCleartextTraffic : 해당 속성을 true로 설정하면 모든 http 주소에 접근할 수 있다 일부 http URL에만 접근을 허용하고 싶다면, /res/xml/network_security_config.xml 파일을 생성하여 예외처리를 해주어.. [JAVA][Android] KillProcess로 인한 앱 충돌 / 비정상 종료 이슈 양상 : 앱 종료 다이얼로그에서 확인 키 입력 -> 자원 해제 후 아래 로직을 이용하여 완전히 앱을 종료함 moveTaskToBack(true); finishAndRemoveTask(); android.os.Process.killProcess(android.os.Process.myPid()); *killProcess 호출 시점에 발생한 crash 10:12:41.370 1111 1202 W InputDispatcher: channel '....MainActivity (server)' ~ Consumer closed input channel or an error occurred. events=0x9: system_server 10:12:41.370 1111 1202 E InputDispatcher: .. 이전 1 2 3 4 다음