전체 글 328

백그라운드 리소스를 비 동기 태스크에서 사용하기

BackgroundResource를 asyncTask에서 사용할 때는 반드시 onPostExecute 또는 onProgressExcute 에서 사용 하도록 하자. doInBackground에서 사용 할 경우에는 시스템이 스레드를 돌면서 BackgroundResource를 해결 하러 다니는데... 따로 스레드를 돌려서 사용하면 죽는다. 시스템이 하는 일은 스레드에서 하지 말자. 아빠가 하는일은 아빠가 하도록 하자.

불면증은 보내고 숙면이를 부르는 취침시계 1.1.1

잠잘(취침) 때 시간은 알고 싶은데 휴대폰(스마트폰)을 찾느라 손을 이리저리 움직이는 것도 모자라, 눈 뜨고 빛나는 시간을 확인 해야 한 적이 많으신가요? 이렇게 시간을 확인 했다면 이미 잠은 깨버린거죠. '잠이 오지 않을 때 잠깐만 시간 확인 하면 잘 잘것 같은데....' 자다가 잠깐 깨어났는데 시간만 확인 하고 싶은데....' '알람이 울릴 때가 되었는데 지금은 몇시인지... 확인 하면 잠 다 깰 것 같고...' 이런적이 많으신가요? 그렇다면 숙면 시계 어플을 만나보세요. 주무시던 잠 그대로 반 수면 상태에서 확인 하고 깊은 수면 상태로 다시 보내드립니다. 또한, 불면증으로 시달리는데... 시간을 확인하면 눈 부신 상태에서 또 다시 잠이 드는데 오래 걸리시는 분들께도 조용히 시간만 확인 시켜드리고 수..

스레드 엄마의 심폐 소생술에... 로이드가

프로그래스 다이얼로그는 스레드 엄마가 품어줘야 비로소 새 생명이 태어 날 수 있는 조건이 갖추어진다. 즉, 스레드 엄마가 제대로 품지 않으면 언제든지 넘어져서 다치고 떨어져서 죽을 수도 있다. 여기서 '엄마가' 그리고 '제대로'가 참 중요하다. 무슨말이냐? 안드로이드의 우주 속에는 수 많은 스레드 엄마들이 새끼들을 키우고 살고 있는데... 아빠가 술먹고 집으로 돌아오다가 옆집 애가 뛰어노는 모습을 보고, 자기 자식인줄 알고 집으로 데리고 왔다면? 안드로이드 우주에선 엄마들이 자기 애가 아니면 그냥 밖으로 던져 버린다. 즉, 사망이다. 여기서 알고 넘어가야 할 것은? 1. 아빠도 누가 우리 자식인지 알아야 애를 잘 데려 와서 키울 것이고2. 엄마도 애가 멀리 나가서 다른 자식과 햇갈리지 않도록 해야 한다는..

정각마다 내가 원하는 말을 해주는 정각알림앱

현재 시간 앞/뒤로 듣고 싶은 그리고 말하고 싶은 문장을 만들어 보세요. (명언, 좌우명, 속담, 암기, 공부, 일정, 메모, 상큼하고 활기찬 문구등으로 만들수 있습니다.) 그러면, 매 시간 정각이 되면 시간과 함께 읽어 드립니다. 앱 받으러 구글플레이로 가기내가 만드는 정각 알림(말하는 시계) 그럼 기능을 한 번 살펴 볼까요?**** 정말 정확합니다. 절대 정시를 놓치지 않습니다. ********* 정말 쉽습니다. 유치원생부터 200세까지 누구나 한 번에 사용 할 수 있어요 ***** 0. 핵심 기능이죠? 현재 시간 앞 뒤로 원하는 문구를 입력 할 수 있습니다. 아래처럼 입력 하면 '현재 시간은 오전 9시 입니다.'로 9시 정각에 말해줍니다. '몇시일까? 오후 3시 에요', '몇시라고? 오후 6시에요'..

EditeText 키보드 내리고 포커스 내보내기

EditText를 여러개 사용하다보면 포커스 때문에 불편한 점이 생길 때가 많다. 이럴 때는 필요할 때만 포커스를 넣고 그외에는 포커스를 기본적으로 죽여야 한다. 그렇지 않으면 시도 때도 없이 키보드가 올라가고 사라지지 않기 때문이다. 키보드 강제로 내리기 private void hideKeyBoard(){ InputMethodManager iM= (InputMethodManager)mContext.getSystemService(Context.INPUT_METHOD_SERVICE); iM.hideSoftInputFromWindow(mEditText.getWindowToken(), 0); } 키보드의 포커스를 기본으로 다른 곳으로 보내기아래 코드를 다른 레이아웃등에 넣어 주면 수동으로 포커스를 줄 수 있다..

[안드로이드 스튜디오] 간단하고 쉬운 위젯 만들기

안드로이드 스튜디오에서 간단한 위젯은 클릭 몇 번 만으로 나타나게 할 수 있다. 프로젝트 화면 - app 클릭 - 마우스 오른쪽 메뉴 - New - Widget - App Widget 을 클릭하면 다음과 같은 창이 나타난다. [Finish] 버튼을 누르고 바로 실행해서 에뮬레이터 화면에 위젯 추가한 화면 이다. 클릭만으로 위젯 껍데기는 완성되는 셈이다. 실행 되는 걸 봤으니 위 위젯 추가로 어떤 파일이 추가/수정 되었는지 보자. 추가된 파일 > ./MyAppWidget.java ./xml/my_app_widget_info.xml ./layout/my_app_widget.xml 수정된 파일 > ./AndroidManifest.xml 위젯을 만드는데 필요한 예제가 그대로 만들어 지는 셈이다. 위젯 버튼을 클..

SwitchPreference 이벤트 중복 버그

CheckboxPreference를 사용 할 때는 분명히 onPreferenceTreeClick으로 이벤트가 들어왔다. 하지만 SwitchPreference를 사용하면 onPreferenceChange로 이벤트가 들어오니 주의 하여야 한다. onPreferenceTreeClick if (KEY_SETTINGS.equals(preference.getKey())) { ..... return true; } 그러나, 더 심각한 문제는... 스위치를 끄고 켤 때 마다 이벤트가 2번씩 들어 온다는 것이다. 이를 해결 하기 위해서는 아래처럼 새 이벤트 헌 이벤트를 검사해주어야 한다. 이것이 더 웃긴 것이 단말기 마다 다르다는 점이다. 어떤 단말기는 2번 이벤트를 1번으로 줄여서 보내주고 어떤 단말기는 2번 다 보내니..

[안드로이드 스튜디오] 애드몹 lib 추가하기

앱에서 구글 admob 광고를 넣으려면 필요한 lib가 있는데, 안드로이드 스튜디오 사용자는 툴에서 추가 가능하다. Open Module Settings 창(프로젝트 창에서 [app] 을 클릭한 상태에서 마우스 오른쪽 메뉴, 또는 F4 누르면 뜸)에서Ads를 체크해서 추가하면 필요한 dependencies가 추가된다. build.gradle 파일을 확인해 보면 아래와 같이 추가 되었음을 확인 할 수 있다.dependencies { compile 'com.android.support:support-v4:23.0.1' compile 'com.google.android.gms:play-services-ads:7.3.0' } 위 과정후 코드로 광고 추가하면 된다. 개발 할 때는 테스트모드로 광고 확인하자. 애드..

[애드몹] 테스트 광고 요청하기 - 무효노출 방지

개발 중 애드몹(admob) 광고를 달고 테스트 하다 보면 조회수가 올라갈 텐데요, 앱을 테스트할 때 무효 노출이 발생하지 않도록 하려면 테스트 광고를 요청하는 것이 좋습니다. 방법은 코드 상으로 adRequest를 호출할때, addTestDevice를 하면 됩니다. 릴리즈 시에는 .addTestDevice() 부분은 주석 처리하면 됩니다. mAdView = (AdView) findViewById(R.id.adMobView); AdRequest adRequest = new AdRequest.Builder() .addTestDevice(AdRequest.DEVICE_ID_EMULATOR) // 테스트 광고 요청 .build(); mAdView.loadAd(adRequest); 출처: https://deve..

브로드캐스트 리시버에서 하지 말아야 할 것들

안드로이드 브로드캐스트 리시버에서 하지 말아야 할 것들... 일단 생각 나는 것부터 적어 보자. 1. 프로그래스 다이얼로그를 쓰지 말자. 2. asyncTask를 쓰지 말자. android.view.WindowManager$BadTokenException: Unable to add window -- token null is not for an application 둘 다 위와 같은 에러가 난다. 왜냐? 브로드 캐스트는 시스템 스레드에서 도는데 1, 2번은 UI 스레드에서 돌기 때문이다. '결국, 너는 누구냐?' 가 된다

반응형