package com.ispring.startservicedemo;
import android.app.Service;
import android.content.Intent;
import android.media.MediaPlayer;
import android.os.IBinder;
import android.widget.Toast;
import java.io.IOException;
public class MusicService extends Service {
private MediaPlayer mediaPlayer = null;
private boolean isReady = false;
@Override
public void onCreate() {
//onCreate在Service的生命周期中只会调用一次
super.onCreate();
//初始化媒体播放器
mediaPlayer = MediaPlayer.create(this, R.raw.music);
if(mediaPlayer == null){
return;
}
mediaPlayer.stop();
mediaPlayer.setOnErrorListener(new MediaPlayer.OnErrorListener() {
@Override
public boolean onError(MediaPlayer mp, int what, int extra) {
mp.release();
stopSelf();
return false;
}
});
try{
mediaPlayer.prepare();
isReady = true;
} catch (IOException e) {
e.printStackTrace();
isReady = false;
}
if(isReady){
//将背景音乐设置为循环播放
mediaPlayer.setLooping(true);
}
}
@Override
public int onStartCommand(Intent intent, int flags, int startId) {
//每次调用Context的startService都会触发onStartCommand回调方法
//所以onStartCommand在Service的生命周期中可能会被调用多次
if(isReady && !mediaPlayer.isPlaying()){
//播放背景音乐
mediaPlayer.start();
Toast.makeText(this, "开始播放背景音乐", Toast.LENGTH_LONG).show();
}
return START_STICKY;
}
@Override
public IBinder onBind(Intent intent) {
//该Service中不支持bindService方法,所以此处直接返回null
return null;
}
@Override
public void onDestroy() {
//当调用Context的stopService或Service内部执行stopSelf方法时就会触发onDestroy回调方法
super.onDestroy();
if(mediaPlayer != null){
if(mediaPlayer.isPlaying()){
//停止播放音乐
mediaPlayer.stop();
}
//释放媒体播放器资源
mediaPlayer.release();
Toast.makeText(this, "停止播放背景音乐", Toast.LENGTH_LONG).show();
}
}
}
package com.ispring.startservicedemo;
import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
public class MusicActivity extends Activity implements Button.OnClickListener {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_music);
}
@Override
public void onClick(View v) {
if(v.getId() == R.id.btnStart){
//播放背景音乐
Intent intent = new Intent(this, MusicService.class);
startService(intent);
//退出当前Activity
this.finish();
}else if(v.getId() == R.id.btnStop){
//停止播放音乐
Intent intent = new Intent(this, MusicService.class);
stopService(intent);
}
}
}
机械节能产品生产企业官网模板...
大气智能家居家具装修装饰类企业通用网站模板...
礼品公司网站模板
宽屏简约大气婚纱摄影影楼模板...
蓝白WAP手机综合医院类整站源码(独立后台)...苏ICP备2024110244号-2 苏公网安备32050702011978号 增值电信业务经营许可证编号:苏B2-20251499 | Copyright 2018 - 2025 源码网商城 (www.ymwmall.com) 版权所有