package org.android.textbook.lesson2.receiveservicestatesample; import android.app.Service; import android.content.Intent; import android.os.IBinder; import android.util.Log; public class SampleService extends Service { // �Ǝ�ACTION�̒�` public static final String ACTION_INIT = "org.android.textbook.lesson2.receiveservicestatesample.action.INIT"; public static final String ACTION_RUNNING = "org.android.textbook.lesson2.receiveservicestatesample.action.RUNNING"; public static final String ACTION_DOWNLOADING = "org.android.textbook.lesson2.receiveservicestatesample.action.DOWNLOADING"; public static final String ACTION_DONE = "org.android.textbook.lesson2.receiveservicestatesample.action.DONE"; public static final String ACTION_DESTROY = "org.android.textbook.lesson2.receiveservicestatesample.action.DESTORY"; // ��ԊǗ��p public enum MyServiceState { INIT, RUNNING, DOWNLOADING, DONE, DESTORY, } @Override public IBinder onBind(Intent intent) { return null; } @Override public void onCreate() { super.onCreate(); postBroadcast(MyServiceState.INIT); } @Override public void onDestroy() { super.onDestroy(); postBroadcast(MyServiceState.DESTORY); } @Override public int onStartCommand(Intent intent, int flags, int startId) { Log.i("koba", "startCommand"); mThread.start(); return Service.START_STICKY; } /** * �e��Ԃ��u���[�h�L���X�g���M���� * * @param state ���M������ */ private void postBroadcast(MyServiceState state) { Intent broadcast = new Intent(); switch (state) { case INIT: broadcast.setAction(ACTION_INIT); break; case RUNNING: broadcast.setAction(ACTION_RUNNING); break; case DOWNLOADING: broadcast.setAction(ACTION_DOWNLOADING); break; case DONE: broadcast.setAction(ACTION_DONE); break; case DESTORY: broadcast.setAction(ACTION_DESTROY); break; default: broadcast = null; break; } if (broadcast != null) { sendBroadcast(broadcast); } } private Thread mThread = new Thread(new Runnable() { @Override public void run() { postBroadcast(MyServiceState.RUNNING); /* �_�E�����[�h�����͏ȗ� */ try { Thread.sleep(5000); } catch (InterruptedException e) { e.printStackTrace(); } postBroadcast(MyServiceState.DOWNLOADING); try { Thread.sleep(5000); } catch (InterruptedException e) { e.printStackTrace(); } postBroadcast(MyServiceState.DONE); } }); }