본문 바로가기

분류 전체보기536

지금은 공부중..... (백그라운드 스레드) 백그라운드 스레드 - Handler, HandlerThread, AsyncTask AsyncTask- AsyncTask 에는 3가지 파라미터 타입 (Params, Progress, Result) 이 있는데, 모두 Void 인 경우는 권장되지 않는다.- 액티비티 종료 시점과 AsyncTask 종료 시점의 불일치로 인한 문제가 생길 수 있다.- Fragment 에서 Back 키 사용으로 인한 Fragment 와 Activity 분리되면 Fragment 의 getContext(), getActivity() 가 null 이 되는데 onPreExecute() 와 onPostExecute() 에서 NullPointerException 이 발생할 수 있다.- 병렬 실행시 doInBackground() 의 실행 순서가.. 2017. 11. 28.
HandlerThread 사용하기 HandlerThread 기본적으로 Thread 를 사용하기 위해서 Looper 를 생성해줘야 하는데, HandlerThread 를 이용하면 Looper 를 자동으로 가지고 있는 클래스를 제공한다. HandlerThread handlerThread = new HandlerThread("HandlerThread"); handlerThread.start(); Handler handler = new Handler(handlerThread.getLooper());Handler handler = new Handler(handlerThread.getLooper(), Handler.Callback);handler.sendEmptyMessage(0);.... HandlerThread 객체를 생성하고 start() 를 .. 2017. 11. 26.
Thread 중복 사용은 성능 나쁜 디바이스한테 안돼! AsyncTask 와 TimerTask를 동시에 사용중이던 앱을 유지보수 하면서 좋은 환경의 디바이스에는 문제가 되지 않은것들이 성능이 떨어지는 디바이스에서는 나오기 시작했다. 현상 :G패드2 에서 각종 이슈가 나왔는데 오늘은 AsyncTask 와 TimerTask 를 중복으로 사용중이던 코드에서 문제가 발생했다. AsyncTask 를 돌리면서 내부에서 4초간의 TimerTask 를 같이 실행하는 부분이 있었다. 측정시간은 10초 이상으로 나왔다. 즉, 괜찮은 성능의 디바이스에서는 4초가 돌아갔었는데, G패드2 에서는 10초 이상이 걸렸다. 현재의 이슈들은 2016년형 갤럭시탭(테스트 기기)에서는 전혀 문제가 되지 않았었는데, 사용중이던 고객의 디바이스에서는 발생한 문제였다. 결론 : 그래서 해결책으로는.. 2017. 11. 23.
어떻게 살 것인가? - How to I Live? 어떻게 살 것인가?- 누군가에게는 의미가 있는 어플리케이션(유,무료)를 만들고, 유지하고 싶다.- 최소 1년에 1주 ~ 1달 정도 해외에서 휴식과 함께 일을 해보고 싶다. (With DDDongHwa)- 1년에 최소한 하나의 앱은 만들고 싶다.- 동반자(동화)와 의미 있는 삶을 살고 싶다.- 한 사람의 몫을 제대로 하면서 살고 싶다.- 가족을 좀 더 챙기는 사람이 되고 싶다. 1 주일 단위- 운동(러닝 및 근력운동 1시간) (Very Often) 2017. 11. 18.
Android Notification 설정 - Head Up Android Notification 설정 Head Up 알림 띄우기 위한 방법 첫번째Notification.Builder.setFullScreenIntent(pendingIntent, true);setFullScreenIntent() 메서드를 통해서 Head Up 알림을 띄운다. 다만, 자동으로 Head Up 알림이 사라지지 않는다. 또한 setContentIntent(Intent) 메서드를 사용하지 않는다면 해당 알림을 눌러도 해당 Activity 로 이동되는 트리거 동작이 없다. 두번째Notification.Builder.setPriority(Notification.PRIORITY_MAX);Notification.Builder.setDefaults(DEFAULT_SOUND or DEFAULT_VIB.. 2017. 11. 15.
for문에서 변수명 이렇게 쓰지마라!! for 문에 사용하는 변수명!! 프로그래밍을 하다보면 당연(?)하게 for 문을 작성하게 된다. 아마도?! ArrayList list = new ArrayList(); for (int i = 0; i < list.size(); i++) { ArrayList strList = new ArrayList(); // .... for (int j = 0; j < strList.size(); j++) {//....}} 위와 같이 나는 작성을 했었다.따로 어디선가 받아오는 변수 명이 아닐 경우에 해당 for 문에 int i 와 같이 i 를 주로 썼었다. 그리고 언젠가 웹인지 책인지 어딘지 모르겠지만 for 문 안에 사용하는 변수명을 i 와 같이 명명하지 말라고 했었다. 명확성이 떨어지고 나중에 코드를 봤을때 이해하기.. 2017. 11. 14.