您的位置:首页 > 移动开发 > Android开发

android的service学习案例------自己做的音乐播放器,让service后台播放mp3文件(是burning.mp3哦!)

2012-07-30 11:06 369 查看
当需要创建在后台运行的程序的时候,就要使用到Service。Service 可以分为有无限生命和有限生命两种。特别需要注意的是Service跟Activities是不同的(简单来说可以理解为后台与前台的区别),例如,如果
需要使用Service的话,需要调用startService(),从而利用startService()去调用Service中的 OnCreate()和onStart()方法来启动一个后台的Service。

启动一个Service的过程如
下:context.startService() ->onCreate()- >onStart()->Service running其中onCreate()可以进行一些服务的初始化工作,onStart()则启动服务。

  停止一个Service的过程如下:context.stopService() | ->onDestroy() ->Service stop

  接下来的实例是一个利用后台服务播放音乐的小例子,点击start运行服务,点击stop停止服务。

MainActivity的源代码:

package com.example.test1;

import android.app.Activity;

import android.content.Intent;

import android.os.Bundle;

import android.view.Menu;

import android.view.View;

import android.view.View.OnClickListener;

import android.widget.Button;

public class MainActivity extends Activity {

private Button playButton = null;

private Button stopButton = null;

@Override

public void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

setContentView(R.layout.activity_main);

playButton = (Button)findViewById(R.id.startPlayButton);

stopButton = (Button)findViewById(R.id.stopPlayButton);

playButton.setOnClickListener(new ButtonListen());

stopButton.setOnClickListener(new ButtonListen());

}





class ButtonListen implements OnClickListener{

public void onClick(View v) {

// TODO Auto-generated method stub

switch(v.getId()){

case R.id.startPlayButton:

startService(new Intent(MainActivity.this, MyService.class));

break;

case R.id.stopPlayButton:

stopService(new Intent(MainActivity.this, MyService.class));

break;

default:

break;

}

}

}

@Override

public boolean onCreateOptionsMenu(Menu menu) {

getMenuInflater().inflate(R.menu.activity_main, menu);

return true;

}

}

MyService的源代码:

package com.example.test1;

import android.app.Service;

import android.content.Intent;

import android.media.MediaPlayer;

import android.os.IBinder;

import android.widget.Toast;

public class MyService extends Service {

MediaPlayer player = null;

public MyService() {

}

@Override

public IBinder onBind(Intent intent) {

// TODO: Return the communication channel to the service.

throw new UnsupportedOperationException("Not yet implemented");

}

@Override

public void onCreate() {

// TODO Auto-generated method stub

super.onCreate();

Toast.makeText(this,

"MyService Createed!",

Toast.LENGTH_SHORT).show();

player = MediaPlayer.create(this, R.raw.burning);

player.setLooping(false);

}

@Override

public void onStart(Intent intent, int startId) {

// TODO Auto-generated method stub

Toast.makeText(this,

"MyService onStart!",

Toast.LENGTH_SHORT).show();

player.start();

}

@Override

public void onDestroy() {

// TODO Auto-generated method stub

super.onDestroy();

player.stop();

Toast.makeText(this,

"MyService onDestroy",

Toast.LENGTH_SHORT).show();

}



}

源码稍后提供下载:http://download.csdn.net/detail/yanzi1225627/4463948
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐