android-service音乐播放器
andriod音乐播放器可以制作成应用程序,当在手机上按home键时,程序在后台运行,音乐是可以播放的,但是这样的话,系统中还保存着应用程序的界面,所以是很占用系统资源的,而手机中的资源那可是寸土寸金啊,所以不好,如果去除UI界面,在播放音乐时,只用播放音乐的代码就可以节省手机系统资源,所以使用了service。我之前的一个音乐播放的小例子就是没有service只有应用程序。不过service 嗯……….,service在一些流氓软件中使用,用户使用之后,程序service悄悄的在后台运行,获取用户信息啊,浪费流量啊,弹出广告啊等等,不过程序员也是要吃饭的,谁让android是免费的呢,这是可以理解的。呵呵,下面将有service的android音乐播放器代码附上:
音乐播放器的activity:
package com.defu.saca;
import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
public class MusicServiceActivity extends Activity{
Button butplay=null;
Button butresume=null;
Button butstop=null;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.music);
butplay=(Button) findViewById(R.id.musicplay);
butresume=(Button) findViewById(R.id.musicstop);
butstop=(Button) findViewById(R.id.musicdie);
View.OnClickListener listener=new View.OnClickListener() {
public void onClick(View v) {
Intent intent=new Intent();
intent.setClass(MusicServiceActivity.this,MusicService.class);
switch (v.getId()) {
case R.id.musicplay:
intent.putExtra("stamsg",0);
break;
case R.id.musicstop:
if(butresume.getText().toString().equals("暂停"))
{
butresume.setText("继续");
intent.putExtra("stamsg", 1);
}else{
butresume.setText("暂停");
intent.putExtra("stamsg",2);
}
break;
case R.id.musicdie:
intent.putExtra("stamsg",3);
break;
default:
break;
}
startService(intent);
}
};
butplay.setOnClickListener(listener);
butresume.setOnClickListener(listener);
butstop.setOnClickListener(listener);
}
}
音乐播放器的service:
package com.defu.saca;
import java.io.IOException;
import android.app.Service;
import android.content.Intent;
import android.media.MediaPlayer;
import android.os.IBinder;
public class MusicService extends Service{
MediaPlayer musiplay=null;
@Override
public void onCreate() {
// TODO Auto-generated method stub
super.onCreate();
musiplay=MediaPlayer.create(this,R.raw.yueguang);
}
@Override
public IBinder onBind(Intent intent) {
// TODO Auto-generated method stub
return null;
}
@Override
public void onDestroy() {
if(musiplay!=null)
{
musiplay.release();//musiplay释放解除
}
super.onDestroy();
}
@Override
public int onStartCommand(Intent intent, int flags, int startId) {
int or=intent.getIntExtra("stamsg",0);
switch (or) {
case 0:
musiplay.start();
break;
case 1:
musiplay.pause();
break;
case 2:
musiplay.start();
break;
case 3:
musiplay.stop();
try {
musiplay.prepare();
musiplay.seekTo(0);
} catch (IllegalStateException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
break;
default:
break;
}
return super.onStartCommand(intent, flags, startId);
}
}
其实service有两种,以后有时间再写在博文里。
以上内容属个人手工敲写,若有大侠看到哪儿有不合适或改进的地方,请不吝赐教。