0
私はちょうどスレッドを開始しているので、私は質問があります。この場合、doInBackground()からinitOctoshape()メソッドを呼び出すと、なぜ新しいスレッド(バックグラウンドスレッドと異なる)が作成されるのですか? Thnx!AsyncTask内の新しいスレッド
public class PlayerActivity extends CustomActivity implements
ProblemListener{
public class PlayChannel extends AsyncTask<Channel, String, String> {
Channel channel;
PlayerActivity thisActivity;
@Override
protected String doInBackground(Channel... params) {
Thread.currentThread().getName();
channel=params[0];
thisActivity=channel.thisActivity;
initOctoshapeSystem(thisActivity);
return url;
}
}
public void initOctoshapeSystem(Activity thisActivity) {
os = OctoStatic.create(thisActivity, thisActivity, null);
os.setOctoshapeSystemListener(new OctoshapeSystemListener() {
@Override
public void onConnect() {
Thread.currentThread().getName();
mStreamPlayer = setupStream(OCTOLINK);
mStreamPlayer.requestPlay();
}
});
}
public StreamPlayer setupStream(final String stream) {
StreamPlayer sp = os.createStreamPlayer(stream);
sp.setListener(new StreamPlayerListener() {
@Override
public void gotUrl(String url) {
}
});
return sp;
}
}
返信用のThnx。しかし、もし私がこの行のコード 'Thread.currentThread()。getName()'をオーバーライドされたonConnect()内に置くと、それはバックグラウンドスレッドの名前とは異なる名前を提供するのでしょうか?私は自分のコードを編集しました。 – Desaretiuss
'onConnect()'は 'initOctoshapeSystem()'とは別のメソッドですので、非同期で実行できます。このOctoshapeライブラリに慣れていませんが、 'OctoshapeSystem'が' onConnect() '別のスレッドで。最善の方法は、そのlibのドキュメントを参照することです。 – maciekjanusz