JAVA/Android (22) 썸네일형 리스트형 [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.. [JAVA][Android] SpannableStringBuilder로 TextView의 일부에만 스타일 지정하기 SpannableStringBuilder는 Text의 스타일을 지정할 때 이용하는 인터페이스 중 하나로, 주로 인터페이스의 setSpan 메소드를 활용하여 뷰의 일부 문자에만 스타일을 지정할 수 있다. *공식 사이트 참고 https://developer.android.com/reference/android/text/SpannableStringBuilder SpannableStringBuilder | Android Developers android.net.wifi.hotspot2.omadm developer.android.com 간단한 활용 예시를 보자 import android.text.SpannableStringBuilder import android.text.Spanned import android... [JAVA][Android] Bundle로 클래스 객체 전달하기 이번 포스팅에서는 Bundle에 클래스 객체를 전달하는 방법에 대해 정리하겠다. 클래스 객체를 전달할 수 있다는 사실을 몰랐을 때에는 객체가 가지고있는 데이터 하나하나를 따로 저장하여 전달하다 보니 전달해야 하는 데이터가 많아져 곤란했었다. 클래스 객체를 전달하면 데이터 하나만 전달해도 받는 시점에 전달받은 데이터에서 값을 추출해서 사용할 수 있으니 훨씬 편리하다 방법은 쉽다. /**수신*/ TestClass testClass; testClass = (TestClass) bundle.getSerializable("TEST_CLASS_INSTANCE"); /**송신*/ Bundle bundle = new Bundle(); bundle.putSerializable("TEST_CLASS_INSTANCE", (.. 이전 1 2 3 4 다음