配置文件

 <service android:name=".MyService"></service>

布局

  <Buttonandroid:id="@+id/btn_open"android:layout_width="wrap_content"android:layout_height="wrap_content"/>

源码

activity:

import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;public class MainActivity extends Activity {private Button btn_open;private boolean status=false;Intent intent;@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);intent=new Intent(this,MyService.class);btn_open= (Button) findViewById(R.id.btn_open);btn_open.setText("open ");btn_open.setOnClickListener(new View.OnClickListener() {@Overridepublic void onClick(View v) {if(!status){btn_open.setText("close");startService(intent);//调用onCreate的方法status=true;}else{btn_open.setText("open");stopService(intent);//调用onDestory方法status=false;}}});}
}

Service:

import android.app.Service;
import android.content.Intent;
import android.media.MediaPlayer;
import android.os.IBinder;
import android.support.annotation.Nullable;
import android.util.Log;public class MyService extends Service {MediaPlayer mediaPlayer;//必须要实现此方法,IBinder对象用于交换数据,此处暂时不实现@Nullable@Overridepublic IBinder onBind(Intent intent) {return null;}@Overridepublic void onCreate() {super.onCreate();mediaPlayer =MediaPlayer.create(this,R.raw.citylights);Log.e("TAG","create");}@Overridepublic int onStartCommand(Intent intent, int flags, int startId) {play();Log.e("TAG","start");return super.onStartCommand(intent, flags, startId);}//封装播放private void play() {mediaPlayer.start();}//service被关闭之前调用@Overridepublic void onDestroy() {super.onDestroy();mediaPlayer.stop();Log.e("TAG","destoryed");}
}

总结:

本文主要是探究Service的工作原理
(1)Service的子类必须onBind方法,用于与用户交换数据,返回类型是IBinder类型,如果要实现远程Service,则需要创建一个继承Binder类的子类,然后在用户活动窗口中实现ServiceConnection类中的两个方法:onServiceConnection()方法和onServiceDisConnected()方法。
(2)本地服务一旦被创建就会一直存在,即使调用它的startService()的组件被销毁也存在后台中,除非调用stopService()销毁它,或者在Servicec内部调用stopSelf()自毁。
(3)在外部启动Service的方法分别与Service子类方法对应的是 startService()——onCreate(); stopService——onDestoryed().
(4)值得注意的是Service一旦创建直到被销毁,其onCreate()方法只会被调用一次。其从创建到被销毁的生命周期是:
onCreate()-onStartCommand()-服务运行中-服务被停止-onDetory().

Android使用本地Service实现后台播放音乐相关推荐

  1. android后台自播放音乐,Android实现后台播放音乐(Service方式)

    Android实现后台播放音乐(Service方式) 实现: 在res文件夹下添加raw文件夹,添加mp3/4格式的音乐文件 注意命名规则只能是a-z,0-9,和下划线_ 不能大写字母和- Andro ...

  2. Android后台播放音乐保活,安卓后台保活黑科技 播放无声音乐

    1.准备一段无声的音频,新建一个播放音乐的Service类,将播放模式改为无限循环播放.在其onDestroy方法中对自己重新启动. public class PlayerMusicService e ...

  3. android mediaplayer 后台播放,Android服务—基于MediaPlayer后台播放音乐

    Android服务-基于MediaPlayer后台播放音乐 操作环境:Android Studio 4.0.0.SDK Level 21(版本5.0 Lollipop).Windows 10.集成显卡 ...

  4. IOS后台运行 之 后台播放音乐

    IOS后台运行 之 后台播放音乐 iOS 4开始引入的multitask,我们可以实现像ipod程序那样在后台播放音频了.如果音频操作是用苹果官方的AVFoundation.framework实现,像 ...

  5. 解决 后台播放音乐时,设置手机铃声,后台音乐不会暂停

    2019独角兽企业重金招聘Python工程师标准>>> 手机后台播放音乐时,设置手机铃声,后台音乐不会暂停,此现象的为设置手机铃声界面,并没要加入播放的foucs机制, 此修改在pa ...

  6. iOS- 关于AVAudioSession的使用——后台播放音乐

    1.前言 •AVAudioSession是一个单例,无需实例化即可直接使用.AVAudioSession在各种音频环境中起着非常重要的作用 •针对不同的音频应用场景,需要设置不同的音频会话分类 1.1 ...

  7. Android 音乐APP(五)音乐通知栏、后台播放音乐

    Android 音乐通知栏 前言 正文 ① 通知栏按钮点击监听 ② 通知栏点击监听 ③ 通知栏业务处理 ④ 运行效果图 结语 前言   这篇文章的标题有些言简意赅了,也突出了这篇文章的核心,那就是通知 ...

  8. 后台播放音乐时进来电话或微信视频通话暂停音乐播放 网易云音乐 喜马拉雅...

    最近项目中遇到一个问题,app内音乐后台播放时,如果有电话或者微信视频通话进来,app后台音乐还在播放.这样就造成用户体验不好,研究了市面上的音乐播放器,比如网易云音乐就很好的做到了如果有微信视频或者 ...

  9. 网易云视频播放器不使用Service实现后台播放

    最近在一家公司实习,要求我在Android上找到播放器实现后台播放的方法,通过研究网易云视频中的播放器,我找到了其中的方法,虽然我觉得网易的方法有点取巧. 1.  问题描述 网易云视频播放器在播放过程 ...

最新文章

  1. 代理中调用alert()
  2. Linux下undefined reference to ‘pthread_create’问题解决
  3. ubuntu mysql增加用户_Ubuntu中给mysql添加新用户并分配权限
  4. CTRL+SHIFT
  5. 2014\Province_C_C++_B\3 李白打酒
  6. 1001.Reverse Root
  7. OPA PropertyStrictEquals match check logic
  8. 海康、大华IPC的rtsp格式
  9. 如何在MySQL中创建新用户并授予权限
  10. SAP License:你熟悉SAP的统驭科目吗?
  11. 《庆余年》里的五竹,到底是不是机器人?
  12. 计算机网络常见面试题
  13. 测试基本理论-看这篇就够了
  14. kali linux 安装中文乱码,Kali Linux 2019-4解决安装中文乱码-Go语言中文社区
  15. 整合SSM中jsp页面图片加载不出来问题
  16. 2020中南大学计算机学院考研初试成绩,中南大学2020考研复试分数线已公布
  17. appstore开发者中文名称修改
  18. 真我q2PRO鸿蒙系统,看看搭载鸿蒙OS2.0系统的华为MatePad Pro 2跑分如何?
  19. bit1618c 功能简介_c 9中的新功能简介
  20. opencv android 透视,Opencv for Android 之透视变换

热门文章

  1. android jni 中实现 LOG 输出调试
  2. 2022年全球与中国前开口统一吊舱(FOUP)行业发展趋势及投资战略分析报告
  3. 澜沧古茶再冲刺港交所上市:多项核心指标下滑,杜春峄为董事长
  4. windows下配置canal
  5. 解析json文件的Go依赖包
  6. log4j:ERROR Attempted to append to closed appender named 的问题
  7. iOS中使用特殊字体
  8. 海康威视摄像机SDK二次开发--指定云台位置,焦距放大倍数,拍摄时长,并拆分保存为视频文件
  9. 大学计算机作业查重,大学生课程作业进行查重?别把“水论文”之过都抛给学生!...
  10. 纸质名片?OUT啦!“会说话”的官微名片助企提升销售力!