2017-01-23 3 views
0

Ich bin völlig neu in der Android Welt & Hilfe benötigen, wie eine Handler-Schnittstelle, die & starten Sie den AsyncTask jeden 10Sec zu stoppen verwenden erstellen & hinzuzufügen. während es aktiv ist (vor Bildschirmberührungsereignissen).Android Handler-Schnittstelle zum Starten/Stoppen AsyncTask

My AsyncTask wird verwendet, um die Bildschirmhintergrundfarbe alle 2 Sek. Zu ändern. wie nachstehend. Ich benutze Button.onClick, um die AsyncTask & Bildschirm Touch-Ereignis später zu starten, um es zu beenden.

public class MyAsynTask extends AsyncTask<Void, Void, Void> { 

    @Override 
    protected Void doInBackground(Void... params) { 
     Runasync = true; 
     while (Runasync) { 
      if (isCancelled()) { 
       break; 
      } 
      try { 

        Thread.sleep(2000); 

      } catch (InterruptedException e) { 
       e.printStackTrace(); 
      } 
      publishProgress(); 
     } 
     return null; 
    } 


    @Override 
    protected void onProgressUpdate(Void... values) { 
     ChangeBackgroudColor(); //Calling Method to change the background color. 
    } 
} 

Antwort

0

Sie können ein Timer & TimerTask für 10 Sekunden Intervall erstellen.

Erstellen Sie Handler wie unten im Hauptteil.

enter image description here

Umsetzung Funktionalität für START_ASYNC_TASK Nachricht in Ihnen Mitteilung Schaltknauf - Case und Abbrechen, um das bestehende AsyncTask und ein neues AsyncTask hier starten.

enter image description here

Verwendung mHandler.post() Verfahren in Timertask eine Nachricht an den UI-Thread zu posten.

In Ihrer Aktivität überschreiben