Todos:
Eu estou estudando código que tem um manipulador que é declarado e instanciado junto com outras variáveis de instância:
public class SomeActivity extends Activity {
Handler handler = new Handler(); // What thread is this taking place on?
// rest of class omitted
}
Então, ele está sendo instanciado no thread da interface do usuário? Espero que sim, porque é usado para postar um Runnable para um ProgressBar, e meu entendimento é que o ProgressBar só deve ser manipulado no Thread de interface do usuário.
Os documentos do Android dizem que algo criado em onCreate () é:
As atividades de um aplicativo são executadas nothread de interface do usuário do aplicativo. a interface do usuário é instanciada, por exemplo, na atividade "onCreate () método, todas as interações com a interface do usuário devem ser executadas no thread da interface do usuário. "
mas isso está acontecendo antes de onCreate ().
Obrigado por qualquer informação,
Michael
Respostas:
0 para resposta № 1Então, ele está sendo instanciado no thread da interface do usuário?
Sim. Um manipulador existirá no segmento onde ele é criado. Você está criando o seu no Main / UI Thread, para que ele possa acessar os elementos da interface do usuário.
mas isso está acontecendo antes de onCreate ().
Isso não afetará em qual thread o manipulador é executado.
0 para resposta № 2
Tudo acontece no thread principal (também conhecido como thread de interface do usuário), a menos que você o execute especificamente em um thread de segundo plano. Então, sim, seu manipulador é criado no thread da interface do usuário.