天天看點

Android四大元件Service之StartService啟動

對于Service兩種方式在概述裡已經介紹了,下面是學習是StartService的代碼執行個體。

service啟動代碼:

package com.example.service01;

import android.app.Service;
import android.content.Intent;
import android.os.IBinder;
import android.util.Log;

public class Service01 extends Service {

	@Override
	public IBinder onBind(Intent arg0) {
		
		return null;  // 由于不是綁定模式,是以在啟動Service時不會被調用,直接傳回null即可
	}

	@Override
	public void onCreate() {
		// TODO Auto-generated method stub
		System.out.println("Example Service  -->     ONCreate");
		super.onCreate();
	}

	@Override
	public void onDestroy() {
		// TODO Auto-generated method stub
		System.out.println("Example Service  -->     ONDestory");
		super.onDestroy();
	}

	@Override
	public int onStartCommand(Intent intent, int flags, int startId) {
		// TODO Auto-generated method stub
		System.out.println("Example Service  -->    OnStartCommand");
		return super.onStartCommand(intent, flags, startId);
	}

}
           

Activity代碼:

package com.example.service01;

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

public class MainActivity extends Activity {
	private Button buttonStart =null;
	private Button buttonStop =null;
	@Override
	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.activity_main);
		
	  buttonStart = (Button)findViewById(R.id.buttonstart);
	  buttonStop = (Button)findViewById(R.id.buttonstop);
	  buttonStart.setOnClickListener(Listener);
	  buttonStop.setOnClickListener(Listener);
	 // buttonStart.setOnClickListener(new buttonStartOnClickLister());
	  //buttonStop.setOnClickListener(new buttonStopOnClickLister());
		
	}
	
	
	private OnClickListener Listener = new OnClickListener() {
		
		@Override
		public void onClick(View arg0) {
			
			
			Intent intent = new Intent(MainActivity.this,Service01.class);  //必須放到類中聲明
			
			switch (arg0.getId()) {
			case R.id.buttonstart:
				
				startService(intent);  // 調用StartService啟動服務  <-------------------------------
				break;
			case R.id.buttonstop:
				stopService(intent);   // 調用stopService 關閉服務 <--------------------------------

			default:
				break;
			}
			
		}
	};
	
	
	
	
	
	
	
	
	
	
	
	/*
	class buttonStartOnClickLister implements OnClickListener{

		@Override
		public void onClick(View arg0) {
			// TODO Auto-generated method stub
			
		}
		
	}
	class buttonStopOnClickLister implements OnClickListener
	{

		@Override
		public void onClick(View arg0) {
			// TODO Auto-generated method stub
			
		}
		
	}
	*/
}
           

AndroidManifest.xml中:

<service android:name=".Service01"/>