Я написал приложение для радиостанции, которая работает хорошо. Если я нажму, чтобы вернуться на рабочий стол и снова активировать приложение, это приведет к повторному потоку приложения, что приведет к одновременному запуску 2 потоков.Как предотвратить параллельное потоковое вещание
Это мой код;
public class MainActivity extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
this.setTitle("Standart FM");
startButton = (Button) findViewById(R.id.buttonBasla);
facebookButton = (Button) findViewById(R.id.buttonFacebook);
twitterButton = (Button) findViewById(R.id.buttonTwitter);
Intent myService = new Intent(this, MyMediaPlayerService.class);
pd = new ProgressDialog(MainActivity.this);
mediaPlayer = new MediaPlayer();
if (isOnline()) {
pd.setCancelable(false);
pd.setMessage("Yükleniyor...");
pd.show();
mediaPlayer.setAudioStreamType(AudioManager.STREAM_MUSIC);
try {
mediaPlayer.setDataSource(path);
mediaPlayer.prepareAsync();
} catch (Exception e) {
e.printStackTrace();
}
mediaPlayer
.setOnPreparedListener(new MediaPlayer.OnPreparedListener() {
@Override
public void onPrepared(MediaPlayer mp) {
mp.start();
pd.dismiss();
}
});
} else {
....
}
startButton.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
Intent myService = new Intent(MainActivity.this,
MyMediaPlayerService.class);
if (mediaPlayer.isPlaying()) {
startButton.setBackgroundResource(R.drawable.andplaybtn);
mediaPlayer.stop();
} else {
startButton.setBackgroundResource(R.drawable.andstopbtn);
mediaPlayer.reset();
mediaPlayer.setAudioStreamType(AudioManager.STREAM_MUSIC);
try {
mediaPlayer.setDataSource(path);
mediaPlayer.prepareAsync();
pd.setCancelable(false);
pd.setMessage("Yükleniyor...");
pd.show();
} catch (Exception e) {
e.printStackTrace();
}
mediaPlayer
.setOnPreparedListener(new MediaPlayer.OnPreparedListener() {
@Override
public void onPrepared(MediaPlayer mp) {
mp.start();
pd.dismiss();
}
});
}
}
});
}
}
Как решить эту проблему? Как предотвратить одновременную поточную передачу в этом мероприятии? Пожалуйста, помогите мне.
Спасибо за ваш answer.How я могу сделать, что в этих кодов? Я написал OnPause() метод и называется mediaPlayer.stop(), то я вместо mediaPlayer.stop() я написал OnPause() .Is это правильно? А также, где я могу написать mediaPlayer = null? – emreturka
Я отредактировал ответ, чтобы вы его увидели. Это то, что вам нужно добавить. Также я рекомендую вам прочитать это, это даст вам представление о том, почему это происходит и что вам нужно ухаживать в будущем. Удачи! http://developer.android.com/reference/android/app/Activity.html – JanBo
:(Но он заканчивает приложение. Я хочу посетить приложение, и если я нажму на спину для перехода на рабочий стол, а затем снова нажмите приложение, оно не будет транслироваться снова. – emreturka