분류 전체보기 (24) 썸네일형 리스트형 [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: .. [JAVA][Android] 스택에 2개 이상의 앱이 쌓여 발생한 이슈와 대안, 스택 내용 확인하는 ADB 명령어 이슈 내용 : A앱 호출 -> B앱 호출 -> C앱 호출 -> A앱 재호출 -> B앱 재호출 후 B앱에서 A앱으로 setResult 통해 연동함. A앱의 onActivityResult에 resultCode가 0(RESULT_CANCELED)로 리턴 됨 단순히 B앱 -> A앱으로 호출 시 발생하지 않으나 위의 케이스에서만 발생 A앱의 launchMode는 singleTop으로 설정되어 있음 이슈 원인 : 위의 케이스와 같이 앱이 스택에 남아있는 상태에서 재호출 할 경우 스택에 앱이 2개 남아있어, result data 전달 시 충돌이 발생함 스택의 경우 A앱의 taskAffinity 속성으로 인해 A앱이 기존 태스크가 아닌 별도의 태스크로 관리되어 발생한 문제 이슈 대안 : taskAffinity 속성과 .. [JAVA][Android] 화면 변경을 감지하는 ViewTreeObserver ViewTreeObserver 란 무엇인가? https://developer.android.com/reference/kotlin/android/view/ViewTreeObserver?hl=en ViewTreeObserver | Android Developers android.net.wifi.hotspot2.omadm developer.android.com 요약하자면 화면에 특정 리소스가 로딩되거나 변경, 혹은 포커스 변경을 감지할 수 있는 Observer이다. 여러가지 리스너가 있지만 가장 유용한 두 가지를 소개하려고 한다. import android.view.ViewTreeObserver; @Override protected void onCreate(Bundle savedInstanceState) { .. [JAVA][Android] Thread와 Handler의 사용법과 동기화 작업을 하다 보면 여러 스레드들이 충돌하거나 다른 문제가 발생하는 가능성이 있다. 스레드는 프로세스 내부에서 진행되는 로직과 별개로 병렬로 실행되며 따라서 여러개의 스레드가 돌더라도 충돌할 위험이 줄어든다. https://developer.android.com/reference/kotlin/java/lang/Thread?hl=en Thread | Android Developers android.net.wifi.hotspot2.omadm developer.android.com * 안드로이드 공식 사이트 참고 기본과 동기화 (synchronized) private int tickTime = 60; private Thread threadTimeTick = null; private Thread thread = .. [JAVA][Android] GlideUrl을 통해 Url에 권한 부여하기 작업을 하다 보면 간혹 사용해야 하는 url에 암호가 걸려있는 경우가 있다. 이런 케이스에 웹 브라우저를 통해 url에 접근하면 아래와 같은 팝업이 발생한다. 소스 작업을 하면서 이런 url에 접근하기 위해서는 header에 권한을 부여해 주어야 한다. 일반적으로 url에 접근할 때에는 GlideUrl 클래스를 사용한다. import com.bumptech.glide.Glide; import com.bumptech.glide.load.model.GlideUrl; import com.bumptech.glide.load.model.LazyHeaderFactory; import com.bumptech.glide.load.model.LazyHeaders; public class MainActivity exten.. 이전 1 2 3 4 다음