Android四大组件之------Service(本地服务小案例)
2016-10-27 23:24
453 查看
很多童鞋被Service的本地服务与远程服务所困扰,下面就写一个小Demo来展示本地服务跟远程服务的区别:
一、概念:本地服务是Service对象与Service的启动者在同个进程中运行, 两者的通信是进程内通信。
二、这里做的本地服务呢是在本地服务中实现一个音乐的播放,废话不多说,直接上代码:
activity_main:
MainActivity:
LocalService:
最后不要忘记在AndroidManifest中注册Service并且要在res目录下添加raw资源文件夹,放入要播放的音乐。
这些代码,就可以轻松实现音乐的播放梦想了!
一、概念:本地服务是Service对象与Service的启动者在同个进程中运行, 两者的通信是进程内通信。
二、这里做的本地服务呢是在本地服务中实现一个音乐的播放,废话不多说,直接上代码:
activity_main:
<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical"> <Button android:id="@+id/btn_main_play" android:layout_width="fill_parent" android:layout_height="wrap_content" android:text="play" android:layout_marginTop="20dp"/> <Button android:id="@+id/btn_main_stop" android:layout_width="fill_parent" android:layout_height="wrap_content" android:text="stop" android:layout_marginTop="20dp"/> <Button android:id="@+id/btn_main_pause" android:layout_width="fill_parent" android:layout_height="wrap_content" android:text="pause" android:layout_marginTop="20dp"/> <Button android:id="@+id/btn_main_exit" android:layout_width="fill_parent" android:layout_height="wrap_content" android:text="exit" android:layout_marginTop="20dp"/> </LinearLayout>
MainActivity:
public class MainActivity extends Activity implements View.OnClickListener { private Button btn_main_play; private Button btn_main_stop; private Button btn_main_pause; private Button btn_main_exit; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); btn_main_play = (Button)findViewById(R.id.btn_main_play); btn_main_stop = (Button)findViewById(R.id.btn_main_stop); btn_main_pause = (Button)findViewById(R.id.btn_main_pause); btn_main_exit = (Button)findViewById(R.id.btn_main_exit); btn_main_play.setOnClickListener(this); btn_main_stop.setOnClickListener(this); btn_main_pause.setOnClickListener(this); btn_main_exit.setOnClickListener(this); } @Override public void onClick(View v) { if(v == btn_main_play) { Intent intent = new Intent(this,LocalService.class); intent.putExtra("action","play"); startService(intent); }else if(v == btn_main_pause) { Intent intent = new Intent(this,LocalService.class); intent.putExtra("action","pause"); startService(intent); }else if(v == btn_main_stop) { Intent intent = new Intent(this,LocalService.class); intent.putExtra("action","stop"); startService(intent); }else if(v == btn_main_exit) { Intent intent = new Intent(this,LocalService.class); stopService(intent); finish(); } } }
LocalService:
public class LocalService extends Service { @Nullable @Override public IBinder onBind(Intent intent) { return null; } @Override public int onStartCommand(Intent intent, int flags, int startId) { String action = intent.getStringExtra("action"); if("play".equals(action)) { play(); }else if("pause".equals(action)) { pause(); }else if("stop".equals(action)) { stop(); } return super.onStartCommand(intent, flags, startId); } private MediaPlayer player; //停止 private void stop() { Log.e("TAG", "停止播放"); if(player != null) { player.stop(); player.reset(); player.release(); player = null; } } //暂停 private void pause() { if(player!=null && player.isPlaying()) { player.pause(); } } //播放 private void play() { if(player == null) { player = MediaPlayer.create(this,R.raw.water_hander); } Log.e("TAG", "播放"); if(!player.isPlaying()) { player.start(); } } @Override public void onDestroy() { stop(); super.onDestroy(); } }
最后不要忘记在AndroidManifest中注册Service并且要在res目录下添加raw资源文件夹,放入要播放的音乐。
这些代码,就可以轻松实现音乐的播放梦想了!
相关文章推荐
- Android四大组件之Service(一)本地服务
- Android四大组件之Service服务
- Android四大组件之服务-Service 原理和应用开发详解
- Android中Service(服务)详解,四大组件之一:Service
- android四大组件之Service服务之总体概述
- Android四大组件之Service(服务)简单总结
- 【Android四大组件之Service】(一)Android中Service(服务)的官方介绍
- Android四大组件之 服务Service
- Android实训案例(七)——四大组件之一Service初步了解,实现通话录音功能,抽调接口
- Android四大组件之Service(服务)实例详解
- android四大组件基础(五),绑定Service服务(含IPC)
- Java乔晓松-android的四大组件之一Service(服务的绑定)
- Android四大基本组件(2)之Service 服务与Content Provider内容提供者
- Android四大组件之一:Service(服务)
- Android实训案例(七)——四大组件之一Service初步了解,实现通话录音功能,抽调接口
- 深入剖析Android四大组件(二)——Service服务之启动与绑定
- Android 四大组件之一:Service后台服务之IntentService
- Android四大组件之一Service(服务)
- Android四大组件之一:Service(服务)
- Android笔记---四大组件之Service服务详解