전체 글 329

말하는 정각(일정) 알림 베타 출시! (뻐꾸기, 수탉소리, 요일별, 시간별 문장, 간격 알림, 반복 알림등 다양한 알람 기능 추가)

드디어 사용자 여러분들의 다양한 의견을 모두 반영한 새로운 말하는 정각 알림(알람)이 탄생 하였습니다. 오래 기다려 주신 모든 분들께 죄송하고 감사하다는 말씀을 전해 드립니다. 그럼 어떻게 변했는지 살펴 봅시다. 일단 UI는 완전히 바뀌었다는 것은 아시겠죠? (우측그림; 아직은 베타 버전이라 많이 불안 할 수 있습니다. 하지만 여러분들이 활발하게 참여해주시면 정말 좋은 앱이 될 수 있습니다 ^^) 구글플레이에서 무료 다운로드 받기 새로 탑재한 기능 0. 정각설정 무료화- 0 ~59분까지 자유롭게 설정 할 수 있습니다.1. 기본문장 - 전체 편집창 추가, 지우기 버튼, 년/월/일/오전/오후/24시간 선택 버튼2. 시간 말하기/ 하지 않기 추가3. 기본문장 말하기/하지 않기 추가4. 사용하는 시간 - 요일별..

[안드로이드] layoutInflater 성능 올리기

XML을 코드에서 가져와서 사용 할 경우, layoutInflater.inflate 방법을 사용한다.하지만, 이 놈을 사용 하는 만큼 뷰를 계속 불러 온다. 10개의 뷰가 있는데 layoutInflater.inflate 코드가 실행 되면 getView를 통해 뷰를 하나씩 10번 불러 온다. 얼마나 낭비인가?그럼 어떻게? 간단하다. 이 놈을 사용 하게 될 경우 view가 null인지를 체크 한 뒤 사용 하면 된다. 원래 getView에 convertView가 있는데 public View getView(View convertView, ViewGroup parent) { if (convertView == null) { convertView = onCreateView(parent); } onBindView(co..

[안드로이드]날짜를 시스템 언어에 따라 표시하기

날짜를 시스템 언어대로 표시할 수 있는 코드입니다. 예) 한국어: 2016년 4월 8일 금요일 English(US) : Friday April 8 2016English(UK) : Friday 8 April 2016 FORMAT_NUMERIC_DATE 플래그 적용시: 4/8/2016 Calendar c = Calendar.getInstance(); int flags = 0; if(formatdate != 0){ flags |= DateUtils.FORMAT_NUMERIC_DATE; } if(year) flags |= android.text.format.DateUtils.FORMAT_SHOW_YEAR; if(day) flags |= android.text.format.DateUtils.FORMAT_SHOW_..

[안드로이드] java.lang.IllegalStateException: Cannot execute task: the task is already running.

AsyncTaks를 아래 방법으로 호출 하면 두 번 실행 하게 되는 효과를 발휘 한다. aAsyncTask.executeOnExecutor(AsyncTask.THREAD_POOL_EXECUTOR).executor(params); java.lang.IllegalStateException: Cannot execute task: the task is already running. aAsyncTask.executeOnExecutor(AsyncTask.THREAD_POOL_EXECUTOR, params) 요렇게 바꿔 줘야 한다.

[안드로이드] 6.0 마시멜로 DOZE 모드 adb 명령

마시멜로우는 배터리 미 충전 중, 오래 동안 폰 켜지 않을 경우 Doze 모드로 들어가서 낮잠을 주무신다... 이때는 알람이고 뭐고... 거의 받을 수 없는 상태가 되기에 꼭 실행 해야 할 작업이 있을 경우는 Doze모드를 해제 해야 한다. 그 때 필요한 작업은? 1. 다음 명령어를 통해 배터리가 충전되지 않도록 변경 합니다. $ adb shell dumpsys battery unplug2. 디바이스 스크린을 끕니다. 3. 다음 명령어를 반복 실행 하여, 디바이스 상태가 idle이 되도록 합니다.$ adb shell dumpsys deviceidle step4. 화면을 켜거나, 디바이스를 크게 움직이면 Doze 모드에서 빠져나옵니다. 5. 다음 명령어를 통해 배터리 충전 상태를 원래되로 되돌릴 수 있습니..

[안드로이드] 스트링으로 동적 값 적용하기

string.xml에 아래와 같이 작성을 하면, 동적인 값을 보여 주는 스트링을 만들 수 있다. 매번 스트링을 만드는 수고를 덜 수 있다. string파일 예) 08:%02d분, 09:%02d분, 10:%02d분 2%d는 두 자리수로 표기, 02%d는 01, 02, 03 처럼 표기 한다. 코드getString(R.string.test, Integer.parseInt(tempMinute), Integer.parseInt(tempMinute), Integer.parseInt(tempMinute));

[안드로이드] 프리퍼런스가 업데이트 안된다면?

말그대로 프리퍼런스(preference) summary가 없데이트 안 될 경우에는 어떻게 하느냐? 다른 화면을 갔다 올 경우에는 비교적 summary가 업데이트 잘 되지만, 한 화면에서 바로 바로 수정이 필요 할 경우에는 쉽지 않다. 만약, 잘 되다가 destory를 한 뒤 다시 들어 왔는데 이 때 부터 작동이 안된다면 ? 이전 글(BadTokenException)과 같은 내용의 해결 방법을 사용하면 된다. Preference를 static으로 만들어서 setSummary를 하면 된다. 어디서? onPreferenceChange(Preference pref, Object newValue) { 에서 받아온 pref로 pref.setSummary() 하지 말고 전역으로 선언해 놓고 하면 된다. 즉, publ..

[안드로이드] BadTokenException -is your activity running? 프리퍼런스에서 발생한다면?

이 에러는 참으로 갑자기 불쑥 나오기로 유명하다. 액티비티 종료 중에 컨텍스트를 사용하다가 잘 발생한다. android.view.WindowManager$BadTokenException: Unable to add window -- token android.os.BinderProxy@40b47bd8 is not valid; is your activity running? 1. 그래서 액티비티 종료 후에도 핸들러가 돌아 갈수도 있기에 갑자기 다이얼로그를 띄우는 등의 행동은 하지 말아야 할 것이다. 이럴때는 isFinishing()을 사용해서 예방 할 수 있다. 2. 또는 다른 액티비티와 연계되어서 발생 할 경우에는 getContext(), this.activity가 아닌 getParent()를 사용 하면 해결..

반응형