서비스 3

안드로이드 서비스 3단계 과정

안드로이드 서비스(service)를 시작하고, 동작하는지 확인하고 마지막으로 멈추는 간단한 3가지 과정. public static void startSensor(Context context) { if (Tools.isServiceRunning("com.comostudio.service.SensorService", context) == false) { context.startService(new Intent(context, SensorService.class)); } } public static void stopSensor(Context context) { if(Tools.isServiceRunning("com.comostudio.service.SensorService", context)){ context..

Service에서 SharedPreference 사용하기(context와 getApplicationContext차이)

기본적으로 SharedPreferences pref = getContext().getSharedPreferences(key, Context.MODE_PRIVATE); 위와 같은 코드를 사용하면 SharedPreference를 사용하여 앱에서 필요한 부분을 저장하고 불러올 수 있다. 하지만, Service(onReceive 등)와 같은 곳에서는 아래와 같이 getApplicationContext를 사용하여야 sharedPreference를 불러올 수 있다. 만약 위처럼 getContext()를 사용하게 되면 아무것도 얻을 수 없다. mContext.getApplicationContext().getSharedPreferences(key, Context.MODE_PRIVATE); getContext, cont..

서비스가 죽어도 자동으로 다시 실행하기

앱에 서비스를 등록해서 사용하고 있는데, 이러저러한 이유로 갑자기 앱이 죽어버리거나 서비스가 종료되면 정말 난감하다. 이럴 때는 @Override public int onStartCommand(Intent intent, int flags, int startId) { return super.onStartCommand(intent, this.START_STICKY, startId); } 위와 같이 onStartCommand를 사용하여 startService를 하도록 하며, START_STICKY 플래그를 쓰게 하면 죽어도 다시 살아나는 좀비 같은 존재가 된다.