Java 如何使用Mediaplayer单例激活前台服务
我在安卓系统中非常新,我有一个Mediaplayer单例,因为我使用的是显示列表的片段,我希望当Mediaplayer单例播放时将激活一个服务,我尝试使用runOnUiThread,但该服务只激活了很多次 这是MyMediaSingleton.java中的SingletonJava 如何使用Mediaplayer单例激活前台服务,java,android,Java,Android,我在安卓系统中非常新,我有一个Mediaplayer单例,因为我使用的是显示列表的片段,我希望当Mediaplayer单例播放时将激活一个服务,我尝试使用runOnUiThread,但该服务只激活了很多次 这是MyMediaSingleton.java中的Singleton public class MyMediaSingleton { MediaPlayer player; private static volatile MyMediaSingleton instance=null; priv
public class MyMediaSingleton {
MediaPlayer player;
private static volatile MyMediaSingleton instance=null;
private MyMediaSingleton(){
}
public static MyMediaSingleton getInstance(){
if(instance==null){
synchronized (MyMediaSingleton.class){
if(instance==null){
instance=new MyMediaSingleton();
}
}
}
return instance;
}
}
感谢您的耐心。媒体播放器单人课
public class MyMediaSingleton {
MediaPlayer mp;
private static volatile MyMediaSingleton instance = null;
private MyMediaSingleton () { }
public static MyMediaSingleton getInstance() {
if (instance == null) {
synchronized (MyMediaSingleton .class) {
if (instance == null) {
instance = new MyMediaSingleton ();
}
}
}
return instance;
}
}
活动类
public class MainActivity extends Activity {
private MyMediaSingleton player = getInstance();
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
}
public void playSound(View view){
if(player.mp==null)
player.mp = MediaPlayer.create(getApplicationContext(), R.raw.sound);
player.mp.start();
//For playing multiple sound using single MediaPlayer do it as:
if(player.mp ==null)
player.mp = new MediaPlayer();
else
player.mp.reset();
String fileName="android.resource://"+getPackageName()+
"/"+ R.raw.sound;
player.mp.setDataSource(getApplicationContext(),Uri.parse(fileName));
player.mp.prepare();
player.mp.start();
}
}
谢谢你的回答,如果我没有解释清楚,我已经可以用Singleton播放音乐了,我的一个问题是,当Mediaplayer Singleton播放歌曲时,我不知道如何激活我的前台服务