2021년 1월 31일 일요일

[Android] Thread, Callable, Executor(framework) 쓰레드 다루기

최근 coroutine , rx 로 인해 쓰레드 체 관한 처리가 조금 쉬워지긴했다.그래도 옛날 소스들을 보면 java thread, Executor 또는 AsyncTask를 이용해서 만들어진게 많다.이중 주로 외부랑 httpd 통신할때 쓰면 Executor 에 대해 알아보자.그전에 어차피 나올용어로서 Callable 과 Runnable을 알아보자 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 static class MyCallable implements Callable<String> { @Override public String...

2021년 1월 30일 토요일

[Android] WorkManager 백그라운드 태스크 다루기

  Android 에서 백그라운드 서비스, 브로드캐스트등을을 하기위해서 Thread, Async, JobScheduler,알람매니져등이 있지만  최근에는 WorkManager를 이용하기를 권장한다.WorkManager는 주로 백단 에서 작업해야하는 것들에 대해 사용하는데, 앱이 종료되거나 다시시작되더  WorkManager가 작업을 다시 시작해주기 때문에 안정적인 서비스 개시가 가능하도록 해준다.그렇다고 모든 서비스, 쓰레드에 WorkManager를 쓰라는건 아니고 ,  즉각실행해야 될거는 coroutines(또는 rxjava등) , 정확한 시간에 가동되야 하는거는 AlarmManager,  기기가 다시 시작되어도 실행되어야 할 백그라운드 작업등은 WorkManager를...

[RxAndroid] RxAndroid 사용해보자.

 RxJava가 대충(잉?) 알았으니 그걸 Android에서 어케 쓸까 참고해보자.0. gradle에 라이브러리 추가build.gradle (Module:...app) 파일에 rxjava2 추가dependencies {...//Rx Utils dependenciesimplementation 'io.reactivex.rxjava2:rxjava:2.2.19'implementation 'io.reactivex.rxjava2:rxandroid:2.1.1'}1.프로젝트 만들때 생성된 Activity에 간단히 RxJava(RxAndroid)를 사용해보자.https://github.com/sugoigroup/rxandroid_sample/commit/8dbc80e9686850c20fa15003ef450218a0c99458MainActivity의...

2021년 1월 29일 금요일

[RxJava] RxJava 프로그래밍

 ReactiveX Android 프로그래밍이 최근 유행이다.예전방식 프로그래머  (나와 같은 늙은) 들은 항상 함수에 정의하고 , 반복루틴에 아이템들을 명시하고 그걸 처리하여 값을 돌려받는 순서대로 로직이 돌아가는게 정상이라 생각하고 살았는데, 이제는 컴퓨터가 너무 빨라져서 꼭 그렇게 순차적으로 하지 않아도 동시에 다른 일을 하면서도 처리할수 있도록 유연성있게 처리하는 방식이 리액티브이다.Imperative 명령(강제적) 방식으로 프로그램한다면for( i=0; i < [0,1,2,3,4]; i ++) {   sum = i *2;} print sum이런식일거다.Declarative 선언식 방식은 sum = numbers.map(function(n)...