Service----样例一

Service

   Service是Android的四大组件之一,作用非常的重要(至于什么重要就不说了)。这里我提供一个样例,这个样例提供了startService和bindService二种开启线程的方式

样例代码:

   关键代码:

1.Sample_2_6.java

public class Sample_2_6 extends Activity {
	
	OnClickListener myOnClickListener;//监听方法
	ServiceConnection connection;//得到ServiceConnection引用
	
	Button startService;//startService按钮
	Button stopService;//stopService按钮
	Button bindService;//bindService按钮
	Button unbindService;//unbindService按钮
	
    public void onCreate(Bundle savedInstanceState) {//重写的onCreate方法
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
        
        connection = new ServiceConnection(){
			public void onServiceConnected(ComponentName arg0, IBinder arg1){}
			public void onServiceDisconnected(ComponentName name){}
        };
        
        startService = (Button) findViewById(R.id.startService);
        stopService = (Button) findViewById(R.id.stopService);
        bindService = (Button) findViewById(R.id.bindService);
        unbindService = (Button) findViewById(R.id.unbindService);
        
        myOnClickListener = new OnClickListener(){
			public void onClick(View v) {
				Intent intent = new Intent(Sample_2_6.this,MyService.class);
				if(v == startService){
					startService(intent);
					bindService.setEnabled(false);
					unbindService.setEnabled(false);
				}else if(v == stopService){
					stopService(intent);
					bindService.setEnabled(true);
					unbindService.setEnabled(true);
				}else if(v == bindService){
					bindService(intent, connection, BIND_AUTO_CREATE);
					startService.setEnabled(false);
					stopService.setEnabled(false);
				}else if(v == unbindService){
					unbindService(connection);
					startService.setEnabled(true);
					stopService.setEnabled(true);
				}
			}
        };
        
        startService.setOnClickListener(myOnClickListener);
        stopService.setOnClickListener(myOnClickListener);
        bindService.setOnClickListener(myOnClickListener);
        unbindService.setOnClickListener(myOnClickListener);
    }
}

2.MyService.java

public class MyService extends Service{
	
	MyThread myThread;//线程的引用
	
	public void onCreate() {//重写的onCreate方法
		Log.d("MyService", "onCreate");//打印日志
		super.onCreate();
	}
	
	public void onStart(Intent intent, int startId) {//重写的onStart方法
		Log.d("MyService", "onStart");//打印日志
		if(myThread == null){
			myThread = new MyThread();
			myThread.start();	//启动线程			
		}
		super.onStart(intent, startId);
	}	
	
	public IBinder onBind(Intent arg0) {//重写的onBind方法
		Log.d("MyService", "onBind");//打印日志
		if(myThread == null){
			myThread = new MyThread();
			myThread.start();		//启动线程		
		}
		return null;
	}
	
	public boolean onUnbind(Intent intent) {//重写的onUnbind方法
		Log.d("MyService", "onUnbind");//打印日志
		if(myThread != null){
			myThread.flag = false;
			myThread = null;//释放线程
		}		
		return super.onUnbind(intent);
	}	
	
	public void onDestroy() {//重写的onDestroy方法
		Log.d("MyService", "onDestroy");//打印日志
		if(myThread != null){
			myThread.flag = false;
			myThread = null;
		}
		super.onDestroy();
	}	
	public class MyThread extends Thread{
		
		boolean flag = true;//循环标志位
		int i = 0;
		public void run(){
			while(flag){
				Log.d("MyService", "i = " + (i++));//打印日志
				try{
					Thread.sleep(1000);//睡眠1秒钟
				}catch(Exception e){//捕获异常
					e.printStackTrace();//打印异常
				}
			}
		}
	}
}


源码下载地址:

    http://download.csdn.net/detail/hfreeman2011/5041824

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值