java - AsyncTask 中的新线程

标签 java android multithreading

我刚刚开始使用线程,所以我有一个问题。在这种情况下,当我从 doInBackground() 调用 initOctoshape() 方法时,为什么会创建一个新线程(与后台线程不同)?谢谢!

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;
 }
}

最佳答案

AsyncTaskdoInBackground(Params...) 方法始终在后台线程上执行,并且由于您调用了 initOctoshapeSystem(thisActivity); 从这个方法中,它也将在此后台线程上执行。这就是 AsyncTask 的行为。

所以,

a new thread (different from the background thread) gets created when I call the method initOctoshape() from doInBackground()

不正确。您对 initOctoshape() 的调用仅遵循驱动 doInBackground() 的线程。

关于java - AsyncTask 中的新线程,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40696718/

相关文章:

java - Dropwizard 错误 405 HTTP 方法 POST Json

c++ - 在 C++ 中创建线程池的最简单方法?

java - 当应用程序处于后台时 Thread.sleep 速度变慢

java - jdbc 不在类路径错误

java - Spring Boot不显示第一个 View

Android:从服务检测触摸

android - 找不到Android Studio Gradle DSL方法: 'mavencentral()'

android - 如何为小于 24 的 API 添加 Android 网络安全配置

java - HttpClient 的多线程问题

Java 包与 C++ 库