Service 사용하기
일단은~ activity 안에서 서비스를 시작하는 것과 멈추는 것입니다.
private boolean mToggleService; @Override public void onClick(View v) { // TODO Auto-generated method stub if (R.id.testService == v.getId()) { if (mToggleService) { startService(new Intent(this, HelloService.class)); } else { stopService(new Intent(this, HelloService.class)); } mToggleService = !mToggleService; } } |
서비스 클래스를 하나 만듭니다.
new -> class -> Superclass : android.app.Service 로 생성합니다.
그러면 onBind()함수 하나만 있을 것입니다. (이클립스에서)
나머지 콜백함수를 override 합니다.
onCreate(), onStart(), onDestroy()
여기서 잠깐!! 서비스의 lifecycle은 조금 다른면이 있습니다.
startService()로 호출될때에는 onCreate()->onStart() 순으로 호출됩니다.
bindservice()로 호출될때에는 onCreate()->onBind() 순으로 호출됩니다. onStart()는 호출되지 않습니다.
서비스클래스를 상속받은 클래스입니다. 안에 소스는 없으나
Logcat으로 어느 콜백 함수가 호출 되는지 확인 하실 수 있습니다.
public class HelloService extends Service { @Override public IBinder onBind(Intent intent) { // TODO Auto-generated method stub Log.i("YTKIM:DEBUG - service","onBind()"); return null; } @Override public void onCreate() { // TODO Auto-generated method stub Log.i("YTKIM:DEBUG - service","onCreate()"); super.onCreate(); } @Override public void onDestroy() { // TODO Auto-generated method stub Log.i("YTKIM:DEBUG - service","onDestroy()"); super.onDestroy(); } @Override public void onRebind(Intent intent) { // TODO Auto-generated method stub Log.i("YTKIM:DEBUG - service","onRebind()"); super.onRebind(intent); } @Override public void onStart(Intent intent, int startId) { // TODO Auto-generated method stub Log.i("YTKIM:DEBUG - service","onStart()"); super.onStart(intent, startId); } } |
원하는 함수에서 Timer나 Thread로 작업하실 수 있을 것입니다.
Manifest.xml 파일에 서비스를 추가해야 합니다.
<service android:name=".HelloService"></service> |
반응형
'Program > Android Java' 카테고리의 다른 글
new 와 getInstance() 와의.. 차이. (0) | 2012.07.18 |
---|---|
TextView - SpannableStringBuilder 를 이용한 스타일 설정 (0) | 2012.07.17 |
[ JAVA ] 자바 String Util 들 (0) | 2012.07.11 |
WIFI 접속방법 (0) | 2012.07.08 |
[Android] 위젯 : 리소스 (0) | 2012.07.06 |