▶ Service
안드로이드에서 서비스는 백그라운드에서 실행되는 프로세스를 의미 합니다. 지금까지 사용한 액티비티와 다른 점은 화면이 없다는 것인데 화면이 없다는 것을 제외하면 사실상 애플리케이션의 구성요소로서 액티비티 처럼 동작한다고 생각할 수 있을 것입니다. 서비스도 애플리케이션 구성요소 이므로 새로 만든 후에 항상 매니페스트 파일에 등록해야 하며, 메인 엑티비티에서 서비스를 시작하고 싶은 경우에는 startService() 메소드를 이용해 서비스를 시작 시킬 수 있습니다.
▶ SampleServiceActivity.java
import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.view.Menu;
public class SampleServiceActivity extends Activity {
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
Intent myIntent = new Intent(this, MyServices.class);
startService(myIntent);
}
@Override
protected void onDestroy() {
// TODO Auto-generated method stub
super.onDestroy();
}
}
▶ MyService.java
import android.app.Service;
import android.content.Intent;
import android.os.IBinder;
import android.util.Log;
public class MyServices extends Service implements Runnable {
public static final String TAG = "MyService";
private int count = 0;
@Override
public void onCreate() {
// TODO Auto-generated method stub
super.onCreate();
Thread myThread = new Thread(this);
myThread.start();
}
public void run() {
// TODO Auto-generated method stub
while(true){
try {
Log.i(TAG, "my service called #" + count);
count++;
Thread.sleep(5000);
} catch(Exception ex) {
Log.e(TAG, ex.toString());
}
}
}
@Override
public IBinder onBind(Intent arg0) {
// TODO Auto-generated method stub
return null;
}
}
▶ AndroidManifest.xml
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.example.sampleservice"
android:versionCode="1"
android:versionName="1.0" >
<uses-sdk
android:minSdkVersion="8"
android:targetSdkVersion="15" />
<application
android:icon="@drawable/ic_launcher"
android:label="@string/app_name"
android:theme="@style/AppTheme" >
<activity
android:name=".SampleServiceActivity"
android:label="@string/title_activity_sample_service" >
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<service android:name="MyServices" android:enabled="true" >
</service>
</application>
</manifest>
[Android] 리소스와 메니페스트 (0) | 2012.08.14 |
---|---|
[Android]브로드캐스트 수신자 (0) | 2012.08.12 |
[Android] Activity 수명주기 (0) | 2012.08.12 |
[Android] Parcelable 인터페이스 (0) | 2012.08.11 |
[Android] Activity 와 Stack Flag (0) | 2012.08.11 |
댓글 영역