android service 学习
2010-08-23 01:13:00 来源:WEB开发网45
46 int op = bundle.getInt("op");
47 switch (op) {
48 case 1:
49 play();
50 break;
51 case 2:
52 stop();
53 break;
54 case 3:
55 pause();
56 break;
57 }
58
59 }
60 }
61
62 }
63
64 public void play() {
65 if (!mediaPlayer.isPlaying()) {
66 mediaPlayer.start();
67 }
68 }
69
70 public void pause() {
71 if (mediaPlayer != null && mediaPlayer.isPlaying()) {
72 mediaPlayer.pause();
73 }
74 }
75
76 public void stop() {
77 if (mediaPlayer != null) {
78 mediaPlayer.stop();
79 try {
80 // 在调用stop后如果需要再次通过start进行播放,需要之前调用prepare函数
81 mediaPlayer.prepare();
82 } catch (IOException ex) {
83 ex.printStackTrace();
84 }
85 }
86 }
87
88}
服务 使用了系统自带MediaPlayer进行音乐的播放控制。 当调用了startService后服务会先调用onCreate,我们在里面对MediaPlayer进行初始化。接着会调用onStart,可以看到传递给startService()的Intent对象会传递给onStart()方法,这样我们就可以得到intent里面的操作码:
Iundle bundle = intent.getExtras();
int op = bundle.getInt("op");
然后更具定义好的操作码进行相应的f播放操作。启动后界面如下图:
图中的”close”和“exit”是不同的,close只是调用finish()退出当前的Activity,但是Service并没有关掉,音乐会继续播放。而exit就是调用了stopService(intent);来停止服务,Service会调用onDestroy()方法来对mediaPlayer进行停止和释放资源。
有时候如果服务只提供一些操作接口,我们也可以通过广播的g方式来启动服务。
更多精彩
赞助商链接