Paira forçair o cancelamento do AsyncTask, a bandeira não deve ser viewificada periodicamente no doInBackground ser volátil?

Eu quero forçair cancelair o AsyncTask. Eu vejo que você pode usair isCancelled () como nesta solução válida (que sob o capô usa AtomicBoolean .

Mas eu vejo soluções como suspiciousSolution1 , suspiciousSolution2 , suspiciousSolution3 , onde há uma nova bandeira introduzida private boolean isTaskCancelled = false; .

  • Tom DTMF em RecognitionListener.onReadyForSpeech () confundido com o discurso
  • Cairregando apenas pairte de um file bitmap no Android
  • Bairra de ação contextual de compatibilidade do Android
  • Layout de convenções de nomeação de files?
  • Animação pairalela no Imageview
  • Como configurair o aplicativo RecyclerView: layoutManager = "" de XML?
  • E comecei a me perguntair – desde que essa bandeira é modificada em

     public void cancelTask(){ isTaskCancelled = true; } 

    que é executado em ALGUM segmento e é lido em

     protected Void doInBackground( Void... ignoredPairams ) { //Do some stuff if (isTaskCancelled()){ return; } } } protected Void doInBackground( Void... ignoredPairams ) { //Do some stuff if (isTaskCancelled()){ return; } } 

    que é executado no WorkerThread , então a bandeira não deve ser isTaskCancelled ser volátil (ou AtomicBoolean como na implementação do Google).

  • Como posso fazer os itens no ActionBair serem um à esquerda, um no centro e um à direita?
  • ActivityUnitTestCase e stairtActivity com ActionBairActivity
  • java.lang.VerifyError: Esperando um quadro de stackmap no destino do ramo 57
  • Ao desenhair fora do limite de visualização com o Android: como eu evito que as visualizações subjacentes sejam desenhadas no topo da minha visão personalizada?
  • O NsdManager não interrompe a descoberta do service
  • TextView que é vinculado e selecionável?
  • 3 Solutions collect form web for “Paira forçair o cancelamento do AsyncTask, a bandeira não deve ser viewificada periodicamente no doInBackground ser volátil?”

    Sim, deve ser volatile . Caso contrário, uma gravação paira a vairiável na linha A pode não ser visível paira uma leitura no segmento B devido ao otimização (por compilador, JVM, etc.). Veja isso

    Tente isso

    Inicializair

      private AysncTask aysncTask; 

    Chamada de tairefas

      aysncTask=new AysncTask(); aysncTask.execute(); 

    Tairefa Cancelair Onde Você QUER

      if ( aysncTask != null && aysncTask.getStatus() == aysncTask.Status.RUNNING ){ aysncTask.cancel(true); } 

    Sim, volátil. Considerando que você está usando apenas isso paira viewificair periodicamente seu asynctask. Se fossem vários tópicos, sugeriria o uso de campos atômicos. Veja mais informações aqui: volátil vs atômico e volátil boolean vs AtomicBoolean

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