nella mia applicazione, ho una classe per le cose dell'interfaccia utente, il cui nome è "SettingActivity".Perché AsyncTask viene eseguito nel thread principale di un'applicazione?
Quindi per eseguire alcuni lavori in background, associo questa classe di interfaccia utente (SettingActivity) a un servizio. Ci sono due metodi predefiniti in quel servizio (definiti nel file .aidl), uno è startTask(), l'altro è stopTask().
All'interno di startTask(), ho effettuato una chiamata a un AsyncTask. Ma quando ho controllato il nome del Looper di questo AsyncTask. È "principale". Secondo me, un AsyncTask dovrebbe iniziare un altro Thread diverso dal thread principale.
Così qualcuno sa perché questo accade?
I codici sono i seguenti:
@Override
protected void onPreExecute() {
super.onPreExecute();
Log.d(TAG, "onPreExecute "+Looper.myLooper().getThread().getName());
}
Then I will get main as the output.
Sarebbe utile se si potesse inserire qualche codice di esempio. –