基本信息
源码名称:android 远程服务实例源码 下载
源码大小:10.47M
文件格式:.zip
开发语言:Java
更新时间:2014-02-15
   友情提示:(无需注册或充值,赞助后即可获取资源下载链接)

     嘿,亲!知识可是无价之宝呢,但咱这精心整理的资料也耗费了不少心血呀。小小地破费一下,绝对物超所值哦!如有下载和支付问题,请联系我们QQ(微信同号):813200300

本次赞助数额为: 2 元 
   源码介绍


package com.androidbook.remoteservice;

import android.app.Activity;
import android.content.ComponentName;
import android.content.Context;
import android.content.Intent;
import android.content.ServiceConnection;
import android.os.Bundle;
import android.os.Handler;
import android.os.IBinder;
import android.os.RemoteException;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.SeekBar;
import android.widget.SeekBar.OnSeekBarChangeListener;

public class Remote_serviceActivity extends Activity {
	
	private SeekBar music_seekbar;
	
	private Button music_play; 
	
	IServicePlayer iServicePlayer;
	
	private boolean isPlaying = false;
	
	private Handler handler = new Handler();
	
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
        this.initView();
        bindService(new Intent(this, MusicService.class), conn, Context.BIND_AUTO_CREATE);
		startService(new Intent(this, MusicService.class));
		handler.post( updateThread );
    }
    
	private void initView(){
    	this.music_seekbar = ( SeekBar )super.findViewById( R.id.music_seekbar );
    	this.music_play = ( Button )super.findViewById( R.id.music_play );
    	this.setListener();
    }
    
	private void setListener(){
		this.music_seekbar.setOnSeekBarChangeListener( new OnSeekBarChangeListener() {

			@Override
			public void onProgressChanged(SeekBar seekBar, int progress,
					boolean fromUser) {
			}

			@Override
			public void onStartTrackingTouch(SeekBar seekBar) {
			}

			@Override
			public void onStopTrackingTouch(SeekBar seekBar) {
				if ( iServicePlayer != null ) {
					try {
						iServicePlayer.seekTo( seekBar.getProgress() );
					} catch (RemoteException e) {
						e.printStackTrace();
					}
				}
			}
    	});
    
    	this.music_play.setOnClickListener( new OnClickListener() {
			
			@Override
			public void onClick(View v) {
				if ( !isPlaying ) {
					try {
						iServicePlayer.play();
					} catch (RemoteException e) {
						e.printStackTrace();
					}
					music_play.setText( "暂停" );
					isPlaying = true;
				}
				else {
					try {
						iServicePlayer.pause();
					} catch (RemoteException e) {
						e.printStackTrace();
					}
					music_play.setText( "播放" );
					isPlaying = false;
				}
			}
		});
	}
	
    private ServiceConnection conn = new ServiceConnection() {
		
		@Override
		public void onServiceDisconnected(ComponentName name) {
		}
		
		@Override
		public void onServiceConnected(ComponentName name, IBinder service) {
			iServicePlayer = IServicePlayer.Stub.asInterface( service );
		}
	};
	
	private Runnable updateThread = new Runnable() {
		
		@Override
		public void run() {
			if ( iServicePlayer != null ) {
				try {
					music_seekbar.setMax( iServicePlayer.getDuration() );
					music_seekbar.setProgress( iServicePlayer.getCurrentPosition() );
				} catch (RemoteException e) {
					e.printStackTrace();
				}
			}
			handler.post( updateThread );
		}
	};
	
}