1.自定义一个类继承Service
public class MyService extends Service {
private int wz=0;
private MediaPlayer mp;
@Override
public IBinder onBind(Intent intent) {
return new MyBinder();
}
public class MyBinder extends Binder implements Serializable{
public void play(String path, int arg2) {
BoFang(path, arg2);
}
public void stop() {
mp.stop();
mp.reset();
mp=null;
}
}
private void BoFang(String path, int arg2) {
if (mp == null) {
playMusic(path);
} else {
if (wz==arg2) {
if (mp.isPlaying()) {
mp.pause();
}
else{
mp.start();
}
}
else{
mp.stop();
mp.reset();
playMusic(path);
}
}
wz=arg2;
}
private void playMusic(String path) {
mp = new MediaPlayer();
try {
mp.setDataSource(path);
mp.prepare();
mp.start();
} catch (Exception e) {
e.printStackTrace();
}
}
}
2.配置清单文件
<service android:name="com.example.service.MyService" >
</service>
3.开启服务
public class Main2Activity extends Activity {
private ListView lv;
private MyBinder binder;
List<Music> list=new ArrayList<Music>();
ServiceConnection conn=new ServiceConnection() {
@Override
public void onServiceDisconnected(ComponentName name) {
}
@Override
public void onServiceConnected(ComponentName name, IBinder service) {
System.out.println("binder 123");
binder=(MyBinder) service;
}
};
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main2);
init();
Intent service=new Intent(this,MyService.class);
bindService(service, conn,BIND_AUTO_CREATE);
Intent intent = getIntent();
Object[] mu= (Object[]) intent.getSerializableExtra("list");
for (Object object : mu) {
list.add((Music)object);
}
MyAdapter adapter=new MyAdapter(list, this);
lv.setAdapter(adapter);
lv.setOnItemClickListener(listener);
}
OnItemClickListener listener=new OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> arg0, View arg1, int arg2,
long arg3) {
Music music = list.get(arg2);
if (binder!=null) {
Intent intent=new Intent(Main2Activity.this,Main3Activity.class);
intent.putExtra("music", music);
intent.putExtra("binder",binder);
startActivity(intent);
}
}
};
private void init() {
lv=(ListView)findViewById(R.id.lv);
}
}