본문 바로가기

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

[안드로이드] Back Key 두 번 눌러서 Activity 종료 Back key를 2번 눌러서 Activity 종료 long backKeyPressedTime=0; @Override public void onBackPressed() { if (System.currentTimeMillis() > backKeyPressedTime + 2000) { backKeyPressedTime = System.currentTimeMillis(); return; } // Current time이 backKeyPressedTime + 2000(2초)보다 작으면 앱 종료 if (System.currentTimeMillis() 2022. 6. 16.
[안드로이드] 자동 화면 잠금모드 해제 자동 화면 잠금모드 해제 특정 화면이 동작하고 있을 때나 어떤 이벤트를 진행하고 있을 때 화면을 자동 잠금 모드로 바뀌는 것을 막을 수 있는 방법을 공유합니다. 1. 설정 방법 : FLAG_KEEP_SCREEN_ON만 넣어줘도 되지만, FLAG_TURN_SCREEN_ON도 같이 추가하면 됩니다. @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); getWindow().addFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON | WindowManager.LayoutParams.FLAG_TURN_SCREEN_ON); } 2. 해제 방법 : 잠.. 2022. 6. 15.
[안드로이드] @NonNull & @Nullable 이해 Nullness Annotations Nullness annotations는 2개의 Annotations이 있습니다. @NonNull : null을 허용하지 않는 경우 @Nullable : null을 허용하는 경우 참고 글: Nullness 주석 https://developer.android.com/studio/write/annotations?hl=ko 2022. 6. 14.
[RxJava] Completable 개념 이해 Completable 1. 개념 Completable은 데이터를 발행하는 Observable, Single, Maybe와 달리 데이터 발행의 완료/에러 신호만 보내는 특수한 형태이다. 따라서 데이터 발행의 완료를 알리는 onComplete와 에러 발생을 알리는 onError 2가지 알림을 보낸다. onComplete : 데이터 발행이 완료됐음을 알림 onError : 에러가 발생했음을 알림 2. 예제 Completable은 just 연산자가 없으므로 create 연산자나 fromXXX를 통해 생성한다. 예제를 보면, Completable은 데이터 없이 완료했다 / 에러가 발생했다는 결과만 전달하고 종료한다. Completable completed = Completable.create(new Complet.. 2022. 6. 13.
[RxJava] Maybe 개념 이해 Maybe 1.개념 Maybe도 Observable의 또 다른 형태이다. Maybe는 최대 데이터 하나를 발행할 수 있으며 추가로 데이터 없이도 완료할 수도 있다. Single에 onComplete가 추가된 형태로, 총 3가지 알림을 보낸다. onSuccess : 데이터 하나를 발행함과 동시에 종료 onError : 에러가 발생했음을 알림 onComplete : 데이터 발행이 완료됐음을 알림 2. 예제 Maybe도 Observable이나 Single과 같이 just와 create 연산자가 존재한다. 예제에서는 create를 통해 Maybe를 생성하였다. Maybe.create(new MaybeOnSubscribe() { @Override public void subscribe(@NonNull MaybeE.. 2022. 6. 12.
[안드로이드] Caused by: java.lang.AssertionError: Could not delete caches dir yourProject\build\kotlin\compileDebugTestingKotlin 에러 java.lang.AssertionError 에러 Android App 개발 중에 빌드 시 아래와 같은 에러가 발생이 된다면, Caused by: java.lang.AssertionError: Could not delete caches dir yourProject\build\kotlin\compileDebugTestingKotlin 작업 관리자(Ctrl+Shift+Delete) - 세부 정보 Tab에서 java.exe 파일을 작업 끝내기로 제거하시면 됩니다. 참조 글: https://stackoverflow.com/questions/65832868/caused-by-java-lang-assertionerror-could-not-delete-caches-dir-yourproject-bui 2022. 6. 11.
[안드로이드][활용] 비즈니스 계정으로 게시물 가져오기 Meta for Developers에서 비즈니스 계정 App을 통해서 Instagram 최신 게시물을 가져오도록 하겠습니다. 우선적으로 내 앱 탭을 통해서 현재 등록된 관리자 앱을 확인합니다. 비즈니스 유형으로 된 App을 들어가서 Instagram 그래프 API 항목을 있으면 됩니다. ※앱 검수 항목에서 Oembed Read 기능은 앱 검수 승인이 되어 있어야 합니다. 이제부터 게시물을 가져오도록 하겠습니다. 1. 권한 요청 instagram_basic pages_show_list 2. 사용자 액세스 토큰 받기 - 도구 탭 - 그래프 API 탐색기로 이동 Generate Access Token으로 사용자 액세스 토큰을 생성하시면 됩니다. 3. 사용자 페이지 가져오기 Get /me/accounts or .. 2022. 6. 9.
[RxJava] Single 개념 이해 Single 1. 개념 Single은 Observable의 변형된 형태이다. Observable과 비슷하지만, 여러 개의 데이터를 발행할 수 있는 Observable과 달리 Single은 한 개의 데이터(혹은 에러)만을 발행한다. Observable은 3가지 알림을 보내는 반면, Single은 onSuccess, onError 2가지의 알림을 보낸다. onSuccess : 데이터 하나를 발행함과 동시에 종료 onError : 에러가 발생했음을 알림 RxJava (and its derivatives like RxGroovy & RxScala) has developed an Observable variant called “Single.” A Single is something like an Observabl.. 2022. 6. 5.
[RxJava] 4. Observable의 종류 RxJava의 근간이 되는 Observable 클래스는 소프트웨어 디자인 패턴인 Observer Pattern(1)을 근간으로 되어 있습니다. (1) 옵서버 패턴(observer pattern)은 객체의 상태 변화를 관찰하는 관찰자들, 즉 옵서버들의 목록을 객체에 등록하여 상태 변화가 있을 때마다 메서드 등을 통해 객체가 직접 목록의 각 옵저버에게 통지하도록 하는 디자인 패턴이다. 주로 분산 이벤트 핸들링 시스템을 구현하는 데 사용된다. 발행/구독 모델로 알려져 있기도 하다. 참고글: 옵서버 패턴 Observable에는 데이터를 로딩하고 바로 그 로딩된 내용을 반영할 것인가(Hot Observable) 아니면 사용자의 요청이 있을 때까지 기다릴 것인가(Cold Observable)라는 의미의 2 종류가 .. 2022. 5. 31.
[RxJava] 1. RxJava 란? 1. RXJAVA의 유래 RXJAVA는 요즘 많은 사람들이 자주 즐겨보는 넷플릭스에서 소개된 기술입니다. 2013년 2월에 처음으로 소개되었습니다. 당시 넷플릭스는 REST 기반의 서비스 API 호출 횟수와 서비스의 전반적인 성능을 개선하는 프로젝트를 진행하였으며, 그에 대한 결과물로 .NET 환경의 리액티브 확장 라이브러리를 JVM에 포함하여 RXJAVA를 만들었습니다. 참고 글: ReactiveX https://reactivex.io/intro.html 2. RXJAVA를 사용하는 이유 Android는 그동안 비동기를 처리할 때 AsyncTask API를 사용하였습니다. 하지만, Android API 30 이상부터 AsyncTask가 Deprecated(1)가 되었습니다. (1) Deprecaterd.. 2022. 5. 30.
[RxJava] 3.Observable 란? Observable Observable은 데이터 흐름에 맞게 알림을 보내 구독자가 데이터를 처리할 수 있도록 한다. Observable은 옵서버 패턴을 구현하며, 리액티브 프로그래밍은 Observable로 시작해서 Observable로 끝난다고 해도 과언이 아니다. 안드로이드에서 버튼을 클릭하면 이벤트를 받을 수 있게 하는 OnClickListener가 대표적인 옵서버 패턴의 예라고 볼 수 있다. RxJava에서 Observable은 세 가지를 구독자에게 전달한다. onNext : Observable이 데이터의 발행을 알린다. 기존의 옵서버 패턴과 같다 onComplete : 모든 데이터가 발행이 완료되었음을 알린다. 그러므로 더 이상의 onNext는 발생하지 않으며, 마지막에 딱 한 번만 호출된다. o.. 2022. 5. 29.
[RxJava] 6.Scheduler Scheduler 1. Schedulers 개요 Observable 연산자 체인에 멀티스레딩을 적용하고 싶다면, 특정 스케줄러를 사용해서 연산자(또는 특정 Observable)를 실행하면 된다. ReactiveX의 일부 Observable 연산자는 사용할 스케줄러를 파라미터로 전달받기도 하는데, 이 연산자들은 자신이 처리할 연산의 일부 또는 전체를 전달된 스케줄러 내에서 실행한다. 기본적으로, Observable과 연산자 체인은 이처럼 스케줄러를 통해 동작하고 Subscribe 메서드가 호출되는 스레드를 사용해서 옵서버에게 알림을 보낸다. SubscribeOn 연산자는 다른 스케줄러를 지정해서 Observable이 처리해야 할 연산자들을 실행시킨다. 그리고, ObserveOn 연산자는 Observable.. 2022. 5. 29.
728x90