10. IntentService를 활용하자 액티비티와 프래그먼트 수명주기에 의존하지 않고 백그라운드에서 처리하고 싶은 경우 일반적으로 IntentService가 최적의 선택이 됩니다. 여기서는 백그라운드로 벤치마크에서도 자주 이용되는 피보나치 수열을 계산하고, 그 결과를 LocalBroadcastReceiver를 통해 액티비티에 전달해 봅니다. 이용방법 IntentService 를 이용하는 클래스를 만든다 AndroidManifast.xml에 등록하면 됩니다. 안드로이드 스튜디오에 생성용 메뉴가 있으니깐 그걸 이용하도록 합시다. 그러면 AndroidManifast.xml 에 자동으로 등록 해줍니다. IntentService.onHandleIntent 는 워커 스레드로 실행되므로 이 안에서 계산을 처리하면..
tip6. 디버그 모드 구분하기 안드로이드에는 디버그 모드가 있다. 어플리케이션이 디버그가 가능한 상태인지 표시하는 플래그로 기본 값은 false이다. 보통 알려진 설정 방법은 AndroidManifest.xml 의 부분에 android:debuggable 값을 true/false로 설정하는 것이다.Default1234그런데 이 플래그는 구글 플레이 스토어에 apk를 올릴 때 필터링 대상이라 AndroidManifest.xml 안에 저 값을 그대로 두면 apk를 업로드할 수 없다. 또한 IDE에서는, 사용자가 임의로 설정하지 말고 디버그용으로 apk를 만들 때와 릴리즈용으로 apk를 만들 때 자동으로 설정이 되도록 놔두라고 가이드 한다. IDE에서 에뮬레이터나 단말로 Run/Debug를 실행하면 andr..
9. 상주 서비스를 만들자 상주하는 서비스이 예로 간이 음악 플레이어를 만들겠습니다. 구현을 간단히 하고자 앱 내에 저장하기로 하고 음악 재생은 MediaPlayer 클래스로 합니다. 여기서는 음악의 재생과 정지라는 두 가지 기능만 구현 해봅시다. 음악 재생과 정지 MediaPlayer 인스턴스를 만들고 start()를 호출하면 음악이 재생됩니다. MediaPlayer.create()의 두번째 인수로 전달하는 R.raw.bensound_clearday 음악 파일 입니다. 음악 재생 MediaPlayer 클래스를 이용하기 위해 선언 한다. private MediaPlayer mPlayer; /** * 음악을 재생한다 */ public void play() { Log.d(TAG, "play"); mPlaye..