一、Service简述
在Android中,Service是一个用来执行长时间运行且没有用户界面的操作的组件。它可以在后台执行任务,即使用户切换到其他应用程序也不会被中断。Service通常用于执行不需要与用户交互的操作,如下载文件、播放音乐等。
二、点击事件-播放音乐服务demo
1.MusicPlayService类的创建
创建空白项目ServiceTest后,在app/src/main/java/com.example.servicetest路径下新建Java class并命名为MusicPlayService。与MainActivity类的代码结构相似,MusicPlayService继承自Service类,重写onCreate()、onStartCommand、onDestroy()和onBind(Intent intent)方法。
package com.example.servicetest;
import android.app.Service;
import android.content.Intent;
import android.media.MediaPlayer;
import android.os.IBinder;
import android.widget.Toast;
public class MusicPlayService extends Service {
private MediaPlayer mediaPlayer; // 私有变量
@Override
public void onCreate() {
super.onCreate();
// 创建MediaPlayer对象,并设置音乐资源
mediaPlayer = MediaPlayer.create(this, R.raw.example_music); // 假设sample_music.mp3文件在res/raw/目录下
mediaPlayer.setLooping(true); // 设置循环播放
Toast.makeText(this, "Service Created", Toast.LENGTH_SHORT).show();
}
@Override
public int onStartCommand(Intent intent, int flags, int startId) { // Service的启动
if (!mediaPlayer.isPlaying()) {
mediaPlayer.start(); // 开始播放
Toast.makeText(this, "Music Playing", Toast.LENGTH_SHORT).show();
}
return START_STICKY; // 如果希望Service在被杀死后自动重启,则返回START_STICKY
}
@Override
public void onDestroy() {
if (mediaPlayer.isPlaying()) {
mediaPlayer.stop(); // 停止播放
}
mediaPlayer.release(); // 释放资源空间
Toast.makeText(this, "Music Stopped", Toast.LENGTH_SHORT).show();
super.onDestroy();
}
@Override
p


5960

被折叠的 条评论
为什么被折叠?



