Итак, я сейчас изучаю AsyncTask в Android, и есть следующий простой пример:
public class MainActivity extends AppCompatActivity {
public class DownloadTask extends AsyncTask<String, Void, String> {
@Override
protected String doInBackground(String... urls) {
URL url;
HttpURLConnection urlConnection = null;
try {
url = new URL(urls[0]);
...
}
}
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
DownloadTask task = new DownloadTask();
String result = null;
try {
result = task.execute("http://someURL").get();
} catch (Exception e) {
e.printStackTrace();
}
Log.i("Result",result);
}
}
Единственное, что я не понимаю в этом примере, это:
В разделе try
есть строка, передаваемая методу execute
. Метод execute
является частью объекта task
. Метод doInBackground
также является частью объекта task
. Как метод doInBackground
узнает о содержимом, которое я передаю методу execute
? Потому что в учебнике я узнал, что url = new URL(urls[0]);
содержит информацию о строке, которая передается через метод execute
. Может кто-нибудь объяснить мне эту связь?