android音乐播放器保活,Android 自用 App保活——音乐播放保活适配8.0 (贼好用) | 韩小呆...

/**

* Content:后台播放音乐达到保活目的

* Actor:韩小呆 ヾ(✿゚▽゚)ノ

* Time: 2018/10/12 10:47

* Update:

* Time:

*/

public class SingASongService extends Service {

private MediaPlayer mMediaPlayer;

private Thread thread;

@Override

public IBinder onBind(Intent intent) {

return null;

}

@Override

public void onCreate() {

super.onCreate();

MyThread myThread = new MyThread();

thread = new Thread(myThread);

mMediaPlayer = MediaPlayer.create(MainApplication.getInstance(), R.raw.no_kill);

mMediaPlayer.setLooping(true);

LogUtils.d("onCreate() 创建播放对象:" + mMediaPlayer.hashCode());

}

@Override

public int onStartCommand(Intent intent, int flags, int startId) {

thread.start();

LogUtils.d("播放时 线程名称:" + thread.getName());

return START_STICKY;

}

//开始、暂停播放

private void startPlaySong() {

if (mMediaPlayer == null) {

mMediaPlayer = MediaPlayer.create(MainApplication.getInstance(), R.raw.no_kill);

LogUtils.d("音乐启动播放,播放对象为: " + mMediaPlayer.hashCode());

mMediaPlayer.start();

} else {

mMediaPlayer.start();

LogUtils.d("音乐启动播放,播放对象为: " + mMediaPlayer.hashCode());

}

try {

Thread.sleep(3000);

} catch (InterruptedException e) {

e.printStackTrace();

}

if (mMediaPlayer != null) {

mMediaPlayer.pause();

LogUtils.d("音乐启动播放,播放对象为: " + mMediaPlayer.hashCode());

int progress = mMediaPlayer.getCurrentPosition();

LogUtils.d("音乐暂停,播放进度:" + progress);

}

}

@Override

public void onDestroy() {

super.onDestroy();

mMediaPlayer.pause();

LogUtils.d("恢复播放 时当前播放器对象:" + mMediaPlayer.hashCode());

stopPlaySong();

LogUtils.d("应用播放服务被杀死,正在重启");

LogUtils.d("目标播放工作线程是否存活:" + thread.isAlive());

if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {

startForegroundService(new Intent(getApplicationContext(), SingASongService.class));

} else {

startService(new Intent(getApplicationContext(), SingASongService.class));

}

}

//停止播放销毁对象

private void stopPlaySong() {

if (mMediaPlayer != null) {

mMediaPlayer.stop();

LogUtils.d("音乐停止播放,播放对象为:" + mMediaPlayer.hashCode());

LogUtils.d("音乐播放器是否在循环:" + mMediaPlayer.isLooping());

LogUtils.d("音乐播放器是否还在播放:" + mMediaPlayer.isPlaying());

mMediaPlayer.release();

LogUtils.d("播放对象销毁,播放对象为:" + mMediaPlayer.hashCode());

mMediaPlayer = null;

}

}

class MyThread implements Runnable {

@Override

public void run() {

startPlaySong();

}

}

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值