`
guzizai2007
  • 浏览: 359493 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

Service1.1

 
阅读更多

 

定义一个服务:

 

package com.example.android_service;

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

/**
 * @desc	自定义Service
 * @author	ljt
 * @time	2014年8月29日 下午5:25:21
 */
public class HelloService extends Service{

	@Override
	public void onCreate() {
		super.onCreate();
		Log.i("HelloService", "HelloService onCreate");
	}
	
	@Override
	public void onDestroy() {
		Log.i("HelloService", "HelloService onDestroy");
		super.onDestroy();
	}
	
	/**
	 * 执行服务的操作
	 * @param intent
	 * @param flags
	 * @param startId
	 * @return
	 */
	@Override
	public int onStartCommand(Intent intent, int flags, int startId) {
		Log.i("HelloService", "HelloService onStartCommand");
		return super.onStartCommand(intent, flags, startId);
	}
	
	@Override
	public IBinder onBind(Intent intent) {
		return null;
	}
	
}

 启动一个服务:

 

 

/**
     * 启动一个服务
     * @param view
     */
    public void startService(View view){
    	Intent intent = new Intent(this,HelloService.class);
    	startService(intent);
    }

 停止一个服务:

 

 

/**
     * 停止一个服务
     * @param view
     */
    public void stopService(View view){
    	Intent intent = new Intent(this,HelloService.class);
    	stopService(intent);
    }

 自身停止服务:

 

 

// 自身停止服务
		this.stopSelf();

 IntentService:异步服务

 

 

package com.example.android_service;

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

/**
 * @desc	异步处理Service
 * @author	ljt
 * @time	2014年8月29日 下午6:05:46
 */
public class WorldService extends IntentService{

	public WorldService() {
		super("WorldService");
	}
	
	/**
	 * 该方法会在一个单独的线程中执行  任务执行完后自动停止
	 */
	@Override
	protected void onHandleIntent(Intent intent) {
		Log.i("WorldService", "WorldService onHandleIntent");
	}
	
	@Override
	public void onDestroy() {
		Log.i("WorldService", "WorldService onDestroy");
		super.onDestroy();
	}
	
	@Override
	public void onCreate() {
		super.onCreate();
		Log.i("WorldService", "WorldService onCreate");
	}
	
}

 

/**
     * 启动一个IntentService
     * @param view
     */
    public void startIntentService(View view){
    	Intent intent = new Intent(this,WorldService.class);
    	startService(intent);
    }

 

08-29 18:09:24.340: I/WorldService(7005): WorldService onCreate
08-29 18:09:24.340: I/WorldService(7005): WorldService onHandleIntent
08-29 18:09:24.345: I/WorldService(7005): WorldService onDestroy

 可以看到执行完Handler就直接destory了。

 

 

绑定服务:

 

package com.example.android_service;

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

/**
 * @desc	绑定服务
 * @author	ljt
 * @time	2014年8月29日 下午6:24:08
 */
public class BindService extends Service{

	@Override
	public IBinder onBind(Intent intent) {
		Log.i("BindService", "BindService onBind");
		return null;
	}
	
	@Override
	public boolean onUnbind(Intent intent) {
		Log.i("BindService", "BindService onUnbind");
		return super.onUnbind(intent);
	}
	
	@Override
	public void onCreate() {
		super.onCreate();
		Log.i("BindService", "BindService onCreate");
	}
	
	@Override
	public void onDestroy() {
		Log.i("BindService", "BindService onDestroy");
		super.onDestroy();
	}
	
}

 

private ServiceConnection connection = new ServiceConnection() {
		
		@Override
		public void onServiceDisconnected(ComponentName name) {
			Log.i("BindService", "BindService onServiceDisconnected");
		}
		
		@Override
		public void onServiceConnected(ComponentName name, IBinder service) {
			// 绑定对象  service 由BindService onBind返回
			Log.i("BindService", "BindService onServiceConnected");
		}
	};
    
    /**
     * 绑定一个服务
     * @param view
     */
    public void bindService(View view){
    	Intent intent = new Intent(this,BindService.class);
    	// 绑定服务标记  绑定自动创建
    	bindService(intent, connection, BIND_AUTO_CREATE);
    }
    
    /**
     * 解除绑定一个服务
     * @param view
     */
    public void unbindService(View view){
    	unbindService(connection);
    }

 

08-29 18:35:16.840: I/BindService(8648): BindService onCreate
08-29 18:35:16.870: I/BindService(8648): BindService onBind
08-29 18:35:37.550: I/BindService(8648): BindService onUnbind
08-29 18:35:37.550: I/BindService(8648): BindService onDestroy

 

 

 

分享到:
评论
发表评论

文章已被作者锁定,不允许评论。

相关推荐

Global site tag (gtag.js) - Google Analytics