package greendrm.helloservice; import android.app.Service; import android.content.Intent; import android.os.Binder; import android.os.IBinder; import android.util.Log; import android.widget.Toast; public class TestService extends Service implements Runnable { final String LOG_TAG = "TestService"; private IBinder binder = new TestBinder(); private Thread thread; private boolean isRun; private int count; public class TestBinder extends Binder { public Integer add(Integer a, Integer b) { Log.d(LOG_TAG, "add: " + a + ", " + b + " : " + (a+b)); return a + b; } public Integer sub(Integer a, Integer b) { return a - b; } public Integer mul(Integer a, Integer b) { return a * b; } public Double div(Double a, Double b) { try { return a / b; } catch (ArithmeticException e) { Log.e(LOG_TAG, "divided by zero"); return 0.0; } } } @Override public void run() { while(isRun) { try { Log.i(LOG_TAG, "Service is called: " + count); Thread.sleep(500); } catch (Exception e) { //Log.e(LOG_TAG, e.getMessage()); } } } @Override public void onCreate() { super.onCreate(); isRun = true; thread = new Thread(this); thread.start(); } @Override public void onStart(Intent intent, int startId) { super.onStart(intent, startId); Toast.makeText(this, "onStart", Toast.LENGTH_LONG).show(); } @Override public void onDestroy() { isRun = false; thread.interrupt(); super.onDestroy(); } @Override public IBinder onBind(Intent intent) { return binder; } }