私はラジオアプリを作っています。私は、アクティビティを変更したときにストリームを実行したままにしておきたいと思います!私はサービスを利用することができますが、私のためにその複合体を読むことができます!だから私はAsyncTaskを好む、私はどのようにAsyncTaskが活動をキャンセルするときに生きることができますか?アクティビティのキャンセル時にAsyncTaskを有効にする方法はありますか?
static class Player extends AsyncTask<String, Void, Boolean> {
@Override
protected Boolean doInBackground(String... strings) {
Boolean prepared = false;
try {
mediaPlayer.setDataSource(strings[0]);
mediaPlayer.setOnCompletionListener(new MediaPlayer.OnCompletionListener() {
@Override
public void onCompletion(MediaPlayer mediaPlayer) {
Log.d("myTag", "This is my listnner");
initialStage = true;
playPause = false;
id_play.setImageResource(R.drawable.play);
mediaPlayer.stop();
mediaPlayer.reset();
}
});
mediaPlayer.prepare();
prepared = true;
} catch (Exception e) {
// Log.e("MyAudioStreamingApp", e.getMessage());
prepared = false;
}
return prepared;
}
@Override
protected void onPostExecute(Boolean aBoolean) {
super.onPostExecute(aBoolean);
if (progressDialog.isShowing()) {
progressDialog.cancel();
}
mediaPlayer.start();
initialStage = true;
}
@Override
protected void onPreExecute() {
super.onPreExecute();
progressDialog.setMessage("Buffering...");
progressDialog.show();
}
}
*サービスは使用できますが、私にとっては複雑です!だから私はAsyncTask *とにかくサービスを使用することを好む –
Asynktaskはメインスレッドで動作します。サービスを利用する必要があります。 – Jayshree
AsyncTaskはアクティビティにバインドされていますが、達成したいものに対しては適切ではありません – MatPag