开发者

Pausing a service

i am writing a music player example using services.i am able to start and stop the service by using the activity which is in other application.but now i need to pause the player.how can i do this because their are no onpa开发者_如何学Gouse method in services


Media Player

utilise : pause();

to restart: prepare() start()

**LocalService.java**                                                        public class LocalService extends Service {
private NotificationManager mNM;
MediaPlayer mMediaPlayer;
private final IBinder mBinder = new LocalBinder();
public class LocalBinder extends Binder {
    LocalService getService() {
        return LocalService.this;
    }
}

@Override
public void onCreate() {        
    mNM = (NotificationManager)getSystemService(NOTIFICATION_SERVICE);
}

@Override
public void onDestroy() {
    mNM.cancel(R.string.local_service_started);       
    Toast.makeText(this, R.string.local_service_stopped, Toast.LENGTH_SHORT).show();
}

public void startMp3Player() {
    mMediaPlayer = MediaPlayer.create(getApplicationContext(), 
            R.raw.abc);
    mMediaPlayer.start(); 
}

public void mp3Stop() {
    mMediaPlayer.stop();
    mMediaPlayer.release();
}

@Override
public IBinder onBind(Intent intent) {              
    return mBinder;
}  

}

                                                              **LocalServiceBinding.JAVA**                                                                 public class LocalServiceBinding extends Activity {
private boolean mIsBound;
private LocalService mBoundService;
Button mPlayButton;

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.local_service_binding);
    Button button = (Button)findViewById(R.id.bind);
    button.setOnClickListener(mBindListener);
    button = (Button)findViewById(R.id.unbind);
    button.setOnClickListener(mUnbindListener);
    mPlayButton = (Button)findViewById(R.id.play);
    mPlayButton.setOnClickListener(mPlayListener);
    mPlayButton.setText("Play");
    mPlayButton.setEnabled(false);
}

private ServiceConnection mConnection = new ServiceConnection() {
    public void onServiceConnected(ComponentName className, IBinder service) {
        mBoundService = ((LocalService.LocalBinder)service).getService();            
        Toast.makeText(LocalServiceBinding.this, R.string.local_service_connected,
                Toast.LENGTH_SHORT).show();
    }

    public void onServiceDisconnected(ComponentName className) {
        mBoundService = null;
        Toast.makeText(LocalServiceBinding.this, R.string.local_service_disconnected,
                Toast.LENGTH_SHORT).show();
    }
};

private OnClickListener mBindListener = new OnClickListener() {
    public void onClick(View v) {
        bindService(new Intent(LocalServiceBinding.this, 
                LocalService.class), mConnection, Context.BIND_AUTO_CREATE);
        mIsBound = true;
        mPlayButton.setEnabled(true);

    }
};

private OnClickListener mPlayListener = new OnClickListener() {
    public void onClick(View v) {
            if(mPlayButton.getText() == "Play")
            {
                mBoundService.startMp3Player();
                mPlayButton.setText("Stop");
            }
            else
            {
                mBoundService.mp3Stop();
                mPlayButton.setText("Play");
            }               
    }
};

private OnClickListener mUnbindListener = new OnClickListener() {
    public void onClick(View v) {
        if (mIsBound) {
            unbindService(mConnection);
            mIsBound = false;
            mPlayButton.setEnabled(false);
        }
    }
};

}

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜