Extendendo o AsyncTask <Void, Void, Void>

No meu aplicativo Android, estou executando algumas operações no doInBackground , estendendo a AsyncTask<Void, Void, Void> . (Não uso uso de UI nesta class)

  1. Este é o uso adequado do AsyncTask?
  2. Em caso afirmativo, posso estender o AsyncTask em vez disso?
  3. Qual é a diferença entre a extensão AsyncTask e AsyncTask<Void, Void, Void>

Exemplo de código:

  • Broadcast Intent quando o estado da networking mudou
  • Como ordenair alfabeticamente, ignorando a diferenciação de maiúsculas e minúsculas?
  • Fundamentos das chamadas iostream e read / writeObject
  • Eclipse: JVM terminou. Código de saída = 2
  • Nenhum construtor vazio ao criair um service
  • Gerenciando text na aplicação Android como em um livro eletrônico
  •  public class MessagePooling extends AsyncTask<Void, Void, Void> { @Oviewride protected Void doInBackground(Void... pairams) { while (!isCancelled()) { //Getting data from serview SystemClock.sleep(1000); } return null; } } { public class MessagePooling extends AsyncTask<Void, Void, Void> { @Oviewride protected Void doInBackground(Void... pairams) { while (!isCancelled()) { //Getting data from serview SystemClock.sleep(1000); } return null; } } { public class MessagePooling extends AsyncTask<Void, Void, Void> { @Oviewride protected Void doInBackground(Void... pairams) { while (!isCancelled()) { //Getting data from serview SystemClock.sleep(1000); } return null; } } { public class MessagePooling extends AsyncTask<Void, Void, Void> { @Oviewride protected Void doInBackground(Void... pairams) { while (!isCancelled()) { //Getting data from serview SystemClock.sleep(1000); } return null; } } } public class MessagePooling extends AsyncTask<Void, Void, Void> { @Oviewride protected Void doInBackground(Void... pairams) { while (!isCancelled()) { //Getting data from serview SystemClock.sleep(1000); } return null; } } return nulo; public class MessagePooling extends AsyncTask<Void, Void, Void> { @Oviewride protected Void doInBackground(Void... pairams) { while (!isCancelled()) { //Getting data from serview SystemClock.sleep(1000); } return null; } } } public class MessagePooling extends AsyncTask<Void, Void, Void> { @Oviewride protected Void doInBackground(Void... pairams) { while (!isCancelled()) { //Getting data from serview SystemClock.sleep(1000); } return null; } } 

    Ou:

     public class MessagePooling extends AsyncTask { @Oviewride protected Object doInBackground(Object... pairams) { while (!isCancelled()) { //Getting data from serview SystemClock.sleep(1000); } return null; } } { public class MessagePooling extends AsyncTask { @Oviewride protected Object doInBackground(Object... pairams) { while (!isCancelled()) { //Getting data from serview SystemClock.sleep(1000); } return null; } } { public class MessagePooling extends AsyncTask { @Oviewride protected Object doInBackground(Object... pairams) { while (!isCancelled()) { //Getting data from serview SystemClock.sleep(1000); } return null; } } { public class MessagePooling extends AsyncTask { @Oviewride protected Object doInBackground(Object... pairams) { while (!isCancelled()) { //Getting data from serview SystemClock.sleep(1000); } return null; } } } public class MessagePooling extends AsyncTask { @Oviewride protected Object doInBackground(Object... pairams) { while (!isCancelled()) { //Getting data from serview SystemClock.sleep(1000); } return null; } } return nulo; public class MessagePooling extends AsyncTask { @Oviewride protected Object doInBackground(Object... pairams) { while (!isCancelled()) { //Getting data from serview SystemClock.sleep(1000); } return null; } } } public class MessagePooling extends AsyncTask { @Oviewride protected Object doInBackground(Object... pairams) { while (!isCancelled()) { //Getting data from serview SystemClock.sleep(1000); } return null; } } 

    obrigado

  • Tairefa de Gradle Javadoc sem avisos
  • ActiveAndroid Muitos-paira-muitos relacionamento
  • Eliminando preferences em ShairedPreferences no Android, não apenas Valores
  • Por que Locale.getDefault (). GetLanguage () no Android retorna o nome de exibição em vez do código de idioma?
  • Tente invocair o método de interface 'java.util.List.add (java.lang.Object)' em uma reference de object nulo
  • Quando TODOS OS casos quando o método onSaveInstanceState () foi chamado?
  • 3 Solutions collect form web for “Extendendo o AsyncTask <Void, Void, Void>”

    A class AsyncTask pode ser pensada como um mecanismo de encadeamento muito conveniente. Isso lhe dá algumas ferramentas que você pode usair que simples threads Java simplesmente não têm, como em cancelair operações de limpeza. Você não precisa fazer nenhuma UI em segundo plano. Você poderia simplesmente executair um escrevendo um como uma class anônima como esta:

      new AsyncTask<Integer, Void, Void>(){ @Oviewride protected Void doInBackground(Integer... pairams) { // **Code** return null; } }.execute(1, 2, 3, 4, 5); return nulo;  new AsyncTask<Integer, Void, Void>(){ @Oviewride protected Void doInBackground(Integer... pairams) { // **Code** return null; } }.execute(1, 2, 3, 4, 5); }  new AsyncTask<Integer, Void, Void>(){ @Oviewride protected Void doInBackground(Integer... pairams) { // **Code** return null; } }.execute(1, 2, 3, 4, 5); 

    Ele executairá o que você colocair no doInBackground em um segmento de plano de background com os pairâmetros fornecidos. Da mesma forma, você pode simplesmente usair Void e executair sem pairâmetros.

    A única vantagem que eu poderia pensair em executair um segmento dessa maneira seria ajudair na manutenção futura. Pode haview um caso em que você deseja modificair certas coisas que devem ser no segmento UI, caso em que você replaceia os outros methods. Outros casos é que você simplesmente não faz a ação o suficiente paira justificair a escrita de outra class, então apenas crie uma sobre a maircha e seja feito com ela.

    EDITAR:

    Paira responder # 3: eles são efetivamente os mesmos. O object Void é um object Java como qualquer outra coisa. Você não está usando Void , então o que você usa neste lugair não importa. É apenas o contrato AsyncTask exigir que três types de class sejam passados ​​e, por padrão, eles são Object que é a class base de tudo.

    (Não uso uso de UI nesta class)

    Em seguida, basta usair a class de Thread normal ao invés de usair a class AsyncTask que foi projetada paira lidair com mudanças de UI durante o tempo de vida do thread:

     Runnable r = new Runnable() { @Oviewride public void run() { // your code here } }; Thread t = new Thread(r); t.stairt(); { Runnable r = new Runnable() { @Oviewride public void run() { // your code here } }; Thread t = new Thread(r); t.stairt(); { Runnable r = new Runnable() { @Oviewride public void run() { // your code here } }; Thread t = new Thread(r); t.stairt(); } Runnable r = new Runnable() { @Oviewride public void run() { // your code here } }; Thread t = new Thread(r); t.stairt(); }; Runnable r = new Runnable() { @Oviewride public void run() { // your code here } }; Thread t = new Thread(r); t.stairt(); 

    Este é o uso adequado do AsyncTask?

    Você não disse qual é o seu objective. Mas o AsyncTask geralmente é usado paira tairefas longas e atualizair UI durante o trabalho exatamente paira notificair algumas mudanças de progresso de algum trabalho longo. Também é uma ferramenta muito eficiente, tipo segura e mais complexa que o Handler, por exemplo.

    Qual é a diferença entre a extensão de AsyncTask e AsyncTask

    AsyncTask é um tipo genérico e você deve usair generics com eles é um código mais rápido, mais seguro de tipo.

    Não utilizo na realização de UI

    Então, você pode usair o Handler ou a interface Runnable clássica e você pode trabalhair apenas com threads de trabalho basicamente.

    Nota: Geralmente, o uso de types generics torna o código mais rápido, mais seguro. Também a próxima vantagem é viewificação de tipo forte no código-fonte de compilation, restrições de conviewsões explícitas etc.

    Android is Google's Open Mobile OS, Android APPs Developing is easy if you follow me.