Autore Topic: CountDownTimer all'infinito  (Letto 1052 volte)

Offline Nottambulo

  • Nuovo arrivato
  • *
  • Post: 8
  • Respect: 0
    • Mostra profilo
  • Dispositivo Android:
    Samsung Galaxy S
CountDownTimer all'infinito
« il: 25 Novembre 2010, 18:29:36 CET »
0
Ciao, ho creato un'applicazione per vedere una telecamera in remoto. Per farlo ho utilizzato CountDownTimer che ogni secondo richiede una foto. Ma come faccio a renderlo infinito? Questo è il codice:

Codice: [Seleziona]
package WebCam.android;

import java.io.IOException;
import java.io.InputStream;
import java.net.MalformedURLException;
import java.net.URL;
import android.app.Activity;
import android.graphics.Bitmap;
import android.graphics.BitmapFactory;
import android.os.Bundle;
import android.os.CountDownTimer;
import android.widget.ImageView;

public class WebcamAndroid extends Activity {
    /** Called when the activity is first created. */
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
 
   
 
        new CountDownTimer(3000000, 1000) {   
            public void onTick(long millisUntilFinished) {
                 
                    try {
                              ImageView i = (ImageView) findViewById(R.id.image1);
                      Bitmap bitmap = BitmapFactory.decodeStream((InputStream)new URL("http://MiaWebCam.dyndns.org:12564/jpg/image.jpg").getContent());
                      i.setImageBitmap(bitmap); 
                    } catch (MalformedURLException e) {
                      e.printStackTrace();
                    } catch (IOException e) {
                      e.printStackTrace();
                    }

            }
            public void onFinish() { 
                    //Qui dovrei riavviare il CountDownTimer
            }
            }.start(); 
    }
}

Ho pensato anche di utilizzare invece di un CountDownTimer un ciclo Do infinito messo su un secondo thread cosi`dovrei avre la possibilità di interromperlo tramite un bottone.
Consigli? ciao e grazie.

Offline bradipao

  • Moderatore globale
  • Utente storico
  • *****
  • Post: 4043
  • keep it simple
  • Respect: +567
    • Github
    • Google+
    • bradipao
    • Mostra profilo
  • Dispositivo Android:
    Nexus 5
  • Play Store ID:
    Bradipao
  • Sistema operativo:
    W7
Re:CountDownTimer all'infinito
« Risposta #1 il: 25 Novembre 2010, 18:46:40 CET »
0
Ho pensato anche di utilizzare invece di un CountDownTimer un ciclo Do infinito messo su un secondo thread cosi`dovrei avre la possibilità di interromperlo tramite un bottone.
Consigli? ciao e grazie.

Ho una raccomandazione per il codice che hai postato, che è formalmente corretto, ma contiene un elemento che può crearti grandissimi problemi in ambito Android. Operazioni di una certa lunghezza in termini di tempo DEVONO essere eseguite in Thread (o AsyncTask) a parte rispetto alla UI. Non solo è una buona norma, se ad esempio il thread di UI rimane bloccato nel fetch dalla rete per oltre 5 secondi, l'applicazione viene terminata con Force Close.

Ti consiglierei quindi di implementare tutto da subito in un Thread/AsyncTask separato, a prescindere da come implementi il resto.
NON rispondo a domande nei messaggi privati
Bradipao @ Play Store

Offline Nicola_D

  • Utente storico
  • *****
  • Post: 2479
  • SBAGLIATO!
  • Respect: +323
    • Github
    • Google+
    • nicoladorigatti
    • Mostra profilo
  • Dispositivo Android:
    Nexus 6p, Nexus 4, Nexus S, Nexus 7(2012)
  • Sistema operativo:
    Windows 7
Re:CountDownTimer all'infinito
« Risposta #2 il: 25 Novembre 2010, 20:25:39 CET »
0
IMPORTANTE:NON RISPONDO A PROBLEMI VIA MESSAGGIO PRIVATO
LOGCAT: Non sai cos'è? -> Android Debug Bridge | Android Developers
               Dov'è in Eclipse? -> Window -> Open Prospective -> DDMS e guarda in basso!
[Obbligatorio] Logcat, questo sconosciuto! (Gruppo AndDev.it LOGTFO) - Android Developers Italia

Offline Nottambulo

  • Nuovo arrivato
  • *
  • Post: 8
  • Respect: 0
    • Mostra profilo
  • Dispositivo Android:
    Samsung Galaxy S
Re:CountDownTimer all'infinito
« Risposta #3 il: 26 Novembre 2010, 14:42:13 CET »
0
Vi ringrazio dell'aiuto. Ora provo a mettere giù un po' di codice e poi vi farò sapere. Grazie e ciao

Offline angeloflove82

  • Nuovo arrivato
  • *
  • Post: 47
  • Respect: +6
    • Mostra profilo
  • Dispositivo Android:
    samsung galaxy next
Re:CountDownTimer all'infinito
« Risposta #4 il: 04 Settembre 2012, 13:08:13 CEST »
0
UN BEL non si rifiuta mai !!!

Offline bradipao

  • Moderatore globale
  • Utente storico
  • *****
  • Post: 4043
  • keep it simple
  • Respect: +567
    • Github
    • Google+
    • bradipao
    • Mostra profilo
  • Dispositivo Android:
    Nexus 5
  • Play Store ID:
    Bradipao
  • Sistema operativo:
    W7
Re:CountDownTimer all'infinito
« Risposta #5 il: 04 Settembre 2012, 13:45:37 CEST »
0
link non funzionante

E' vero.  :-(

Il problema è che nel riassetto del sito per developer, Google ha invalidato un bel po' di link alle risorse. Non sono neanche stato in grado di trovare qual'è il nuovo indirizzo di quella pagina (ammesso non l'abbiano distrutta).  >:(
NON rispondo a domande nei messaggi privati
Bradipao @ Play Store

Offline Nicola_D

  • Utente storico
  • *****
  • Post: 2479
  • SBAGLIATO!
  • Respect: +323
    • Github
    • Google+
    • nicoladorigatti
    • Mostra profilo
  • Dispositivo Android:
    Nexus 6p, Nexus 4, Nexus S, Nexus 7(2012)
  • Sistema operativo:
    Windows 7
Re:CountDownTimer all'infinito
« Risposta #6 il: 04 Settembre 2012, 15:47:52 CEST »
0
non ricordo se il link è lo stesso....
Android Developers Blog: A Stitch in Time
IMPORTANTE:NON RISPONDO A PROBLEMI VIA MESSAGGIO PRIVATO
LOGCAT: Non sai cos'è? -> Android Debug Bridge | Android Developers
               Dov'è in Eclipse? -> Window -> Open Prospective -> DDMS e guarda in basso!
[Obbligatorio] Logcat, questo sconosciuto! (Gruppo AndDev.it LOGTFO) - Android Developers Italia