본문 바로가기

Programming 개발은 구글로/JAVA[Android]52

[RxJava] Subject 클래스, ConnectableObservable Subject Subject 클래스에는 대표적으로 AsyncSubject, BehaviorSubject, PublishSubject, ReplaySubject가 있다. public abstract class Subject extends Observable implements Observer Subject의 가장 큰 특징은, Observable을 상속하고 Observer를 구현하고 있어 Observable처럼 쓰일 수도, Observer처럼 쓸 수도 있다는 것이다. 🟩 AsyncSubject 클래스 AsyncSubject 클래스는 Observable에서 발행한 마지막 데이터를 얻어올 수 있는 Subject 클래스입니다. 완료되기 전 마지막 데이터에만 관심이 있으며 이전 데이터는 무시합니다. 완료되기 전까지.. 2022. 12. 1.
[Android] Activity 화면 켜짐 유지 및 해제 코드(Keep Screen On) Activity 화면 켜짐 유지 및 해제 코드 Console 로그를 보다가 아래 사항이 뭔지 궁금해서 찾아봤습니다. I/DecorView: notifyKeepScreenOnChanged: keepScreenOn=false App 자체적으로 화면이 꺼지지 않도록 유지해야 하는 경우가 있습니다. 이때, 직접 코드를 추가해줘야 기기 기본 설정에 따르지 않고 강제적으로 화면을 유지할 수 있습니다. getWindow().addFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON); // 화면 켜짐 유지 getWindow().clearFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON); // 화면 켜짐 해제 2022. 11. 30.
[안드로이드] View Binding View Binding 현재 진행중인 App 개발에서는 ButterKnife.bind로 처리를 하고 있으나 ButterKnife 개발자가 공식적으로 deprecated를 선언하고 구글에서 권고하는 View Binding을 사용하기 위해 정리하였습니다. 1. build.gradle 수정 android { ... buildFeatures { viewBinding = true } } build.gradle에서 뷰 바인딩을 설정하면 안드로이드 스튜디오에서 자동으로 xml 파일과 연동되는 바인딩 클래스가 생성이 됩니다. ※ 뷰 바인딩 클래스 이름은 연동되어 있는 해당 Activity의 이름을 반전시킨 이름으로 생성이 됩니다. ex) MainActivity 클래스 → ActivityMainBinding ​2. 뷰 .. 2022. 6. 25.
[안드로이드] Glide 캐시 Glide 캐시 Glide는 이미지에 대한 새 요청을 시작하기 전 여러 캐시 계층을 확인합니다. 1. 활성 리소스(Active Resource) - 사용하려는 이미지가 현재 다른 View에서 사용중인지 확인 2. 메모리 캐시(Memory Cache) - 메모리 캐시가 최근에 로드가 되었고, 아직 메모리에 남아있는지 확인 3. 리소스(Resource) - 사용하려는 이미지가 이전에 디코딩, 변환 및 디스크 캐시에 기록된 적이 있는지 확인 4. 데이터(Data) - 사용하려는 이미지를 가져온 데이터가 이전에 디스크 캐시에 기록이 되어있는지 확인 처음 2 단계(활성 리소스, 메모리 캐시)에서는 리소스가 메모리 내에 있는지 확인하고 있는 경우 이미지를 즉시 반환합니다. 두 번째 2 단계(리소스, 데이터)에서는 .. 2022. 6. 22.
[안드로이드] 연속 3번 터치 시 다른 메뉴로 이동(hidden) 가끔 Hidden으로 처리되는 사항들이 있어서 정리합니다. Title이나 특정 항목을 3번 연속 터치를 하는 경우 다른 Activity로 이동하도록 처리를 합니다. int HiddenCount = 0; @OnClick(R.id.title) // title 클릭 void hiddenMove() { mHandler.postDelayed(hiddenPress, 900); // 0.9초가 지나는 경우 Count 0 - 연속 if (HiddenCount == 2) { // 3번 터치 Intent intent = new Intent(this, MainActivity.class); intent.putExtra("HiddenData", true); // getIntent().getBooleanExtra("HiddenD.. 2022. 6. 21.
[안드로이드] Glide Usage Glide 1. build.gradle에서 dependency 추가 : 현재 개발 중인 App 기준으로 4.9.0 implementation 'com.github.bumptech.glide:glide:4.9.0' ※ 만약 외부통신을 통해 이미지를 가져와야 한다면 인터넷 권한도 추가 2. 이미지 로드하기 : 기본적으로 Option 없이 View에 이미지를 넣는다면 with(), load(), into()만 사용하면 됩니다. with() : View 또는 Fragment. Activity의 Context load() : 이미지 로드.(Bitmap, Drawable, String, Uri, File, ResourId(Int), ByteArray) into() : 이미지를 보여줄 View를 설정 Glide.wi.. 2022. 6. 20.
[안드로이드] java.lang.RuntimeException: Don't call setOnClickListener for an AdapterView 에러 Don't call setOnClickListener for an AdapterView 에러 - listView에서 onClick을 사용하면 발생되는 에러입니다. java.lang.RuntimeException: Don't call setOnClickListener for an AdapterView. You probably want setOnItemClickListener instead listView는 onItemClick를 이용하면 됩니다. 2022. 6. 19.
[안드로이드] SharedPreferences 사용법 SharedPreferences 사용법 : Activity 또는 Method등에서 간단하게 데이트 주고 받을 경우 SharedPreferences를 사용하면 됩니다. Intent의 extra를 이용하여 getIntent를 통해 정보를 주고 받을 수도 있지만, 특정상황에서 값을 저장하고, 어떤 순간이 왔을 때 그 값을 바로 불러서 사용하고 싶을 때 SharedPreferences를 이용하면 좀 더 편리하게 데이터 처리를 할 수 있습니다. SharedPreferences pref = getSharedPreferences("Preferences 이름", MODE_PRIVATE); ex) SharedPreferences prefs = context.getSharedPreferences(FILE_NAME, Act.. 2022. 6. 19.
[안드로이드] 버전 릴리즈(API) 정리 ■ Android 버전 정리 Android가 휴대전화/태블릿 이외에도 갤럭시 기어와 같이 다양한 디바이스에 활용되었으나 Google에서 웨어러블, 자동차 등에 맞춰 개량 버전을 출시했다. 2017년 2월 HoneyComb과 Gingerbread의 Google Play지원이 종료되었다. 코드네임 버전 릴리즈 날짜 API 버전 리눅스 커널 Android 13 13.0 2022년 2월 10일 API level 32 Android 12 12.0 2021년 10월 4일 API level 31 5.10.x Android 11 11.0 2020년 9월 8일 API level 30 4.14.x Android 10 10.0 2019년 9월 4일 API level 29 4.14.x 4.9.x Pie 9.0 2018년 8월.. 2022. 6. 18.
[안드로이드] 앱 권한(Permisson) 항목 정리 앱 권한(Permisson) 항목 참고 글: Android에서의 권한 https://developer.android.com/guide/topics/security/permissions?hl=ko 2022. 6. 18.
[안드로이드] Failed to resolve: com.google.android.gms:play-services-measurement 에러 Failed to resolve: com.google.android.gms:play-services-measurement 에러 Google play service 업데이트 시 발생되는 아래의 에러 처리 방법을 알려드립니다. Error: Failed to resolve: com.google.android.gms:play-services-measurement 'com.google.gms:google-service' 버전이 맞지 않아서 발생이 됩니다. implementation 'com.google.android.gms:play-services-maps:17.0.0' implementation 'com.google.android.gms:play-services-location:17.0.0' implementa.. 2022. 6. 17.
[안드로이드] Slide Toggle Slide Toggle for Android Toggle button 관련 git hub 공유합니다. https://github.com/pellucide/Android-Switch-Demo-pre-4.0/tree/master/ ※ 참고로 Apache-2.0 license 입니다. 참고 글: Slide Toggle for Android https://stackoverflow.com/questions/9752760/slide-toggle-for-android 2022. 6. 16.
728x90