안드로이드 서비스

2014. 6. 2. 16:03Mobile/Android



반응형

안드로이드 서비스 (service) 백그라운드에서 동작~~


안드로이드 생명주기상 app 이 죽어버리면 따른 동작들을 실행시킬 수없다. app 안에서의 동작들...

그럼 예로 들어 음악같은거는 어떻게 계속 동작이 될까..? 그것이 서비스를 응용한 것이다



기존 Activity 상속을 받던걸 Service로 바꿔준다.




Mainifest 부분에서도 Service를 추가 해준다.




전체적인 소스를 보자



MainActivity.java
package com.example.ggariservice;

import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;


public class MainActivity extends Activity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        
        Button btn01 = (Button)findViewById(R.id.btn01);
        Button btn02 = (Button)findViewById(R.id.btn02);;
        
        btn01.setOnClickListener(new OnClickListener() {
			
			@Override
			public void onClick(View v) {
				
				Intent service= new Intent(getApplicationContext(), ggariService.class);
				startService(service);
				
			}
		});
        
        btn02.setOnClickListener(new OnClickListener() {
			
			@Override
			public void onClick(View v) {
			Intent service = new Intent( getApplicationContext(), ggariService.class);
			stopService(service);
			}
		});

    }

}


ggariSerivce.java
package com.example.ggariservice;

import android.app.NotificationManager;
import android.app.PendingIntent;
import android.app.Service;
import android.content.Intent;
import android.os.Handler;
import android.os.IBinder;
import android.os.Message;
import android.os.SystemClock;
import android.support.v4.app.NotificationCompat;
import android.widget.Toast;

/**
 * 서비스 순서
 * onCreate() → onStartCommand() → Service Running → onDestroy()
 */
public class ggariService extends Service {

    @Override
	public void onCreate() {
    	Toast.makeText(this, "서비스 Oncreate", 1).show();
    	super.onCreate();
        

    }

	@Override
	public IBinder onBind(Intent intent) {
		return null;
	}
	
	
	@Override
	public int onStartCommand(Intent intent, int flags, int startId) {
		Toast.makeText(this, "서비스 onStartCommand", 1).show();
	      return START_STICKY;
//		return super.onStartCommand(intent, flags, startId);
	}
	
	@Override
	public void onDestroy() {
		super.onDestroy();
		Toast.makeText(this, "서비스 onDestro", 1).show();
	}
}

끝~

반응형

'Mobile > Android' 카테고리의 다른 글

cocos2d-x 안드로이드 실행  (0) 2014.06.06
안드로이드 cocos2d-x 프로젝트 생성  (0) 2014.06.03
안드로이드 JSON  (0) 2014.05.21
안드로이드 sqlite  (1) 2014.05.01
[안드로이드] Android Observer  (0) 2014.04.27