Programación y Desarrollo para Android Subforo exclusivo para temas de programación de software para PDAs y desarrollo de aplicaciones, interfaces, etc bajo Android

Respuesta
 
Herramientas
  #1  
Viejo 12/03/10, 05:03:29
Array

[xs_avatar]
leor285 leor285 no está en línea
Usuario novato en la web
 
Fecha de registro: feb 2009
Mensajes: 6
Modelo de smartphone: Diamond

Post Duda con mi Primer Programa

Hola que tal gente?? hace tiempo q leo el foro este.. desde hace casi 2 años cuando planeaba comprar un Htc Diamond, q luego no compre x ciertas complicaciones, pero termine en un Samsung Omnia(el cual me duro 4 dias nomas, desp me lo robaron ) y luego cuando empece a planear comprar mi actual Milestone segui entrando, aunque es la primera vez q posteo (creo), ya hare mi correspondiente precentacion en la parte de precentanciones..

Bueno ahora si, Con uds mi duda :
Estoy intentando hacer un cronometro, y tuve un par de problemas q no pude resolver googleando..
el problema principal es con los hilos, tengo una clase creada donde esta el hilo con su implements Runnable..
cuando la instancio a esta clase en la clase donde quiero ejecutar el hilo, no se con que metodo correr el hilo, en java lo hacia con .Start() pero desde android no se con que metodo correrlo.

y el otro problema que tengo es que tampoco tengo el metodo sleep() q en java lo usaba para pausar el hilo y hacer q pasen los segundos.. me aparece el metodo wait(), pero nose si hara lo mismo o no..

Muchas gracias! espero q alguno sepa responder!
Responder Con Cita


  #2  
Viejo 12/03/10, 09:13:59
Array

[xs_avatar]
leor285 leor285 no está en línea
Usuario novato en la web
 
Fecha de registro: feb 2009
Mensajes: 6
Modelo de smartphone: Diamond

Gente, pude resolver los problemas resultaron ser boludeces.. y eran las 2 x lo mismo, habia instanciado la clase del hilo como Runnable y era Thread.. jaja soy un pelotudo
Ahora mi problema es otro, lo q me pasa es q el cronometro cuenta hasta 2 y se detine.. les dejo el Codigo fuente x si alguno se da cuenta de q puede ser..

Clase Principal
Código:
package Android.Com.Cronometro;

import android.app.Activity;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.TextView;

public class Cron extends Activity {
    /** Called when the activity is first created. */
    public TextView txtTiempo;
    Hilo cron;
    
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
        txtTiempo = (TextView) findViewById(R.id.ConTiempo);
        final Button btn = (Button) findViewById(R.id.BtnAccion);
        cron = new Hilo(txtTiempo);
        cron.start();
        
        btn.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                if(btn.getText().equals("Iniciar Cronometro"))
                {
                    cron.continuar();
                    btn.setText("Pausar");
                }
                else
                {
                    if(btn.getText().equals("Pausar"))
                    {
                        cron.pausar();
                        btn.setText("Continuar");
                    }
                    else
                    {
                        cron.continuar();
                        btn.setText("Pausar");
                    }
                }
            }
        });
        
    }
}
Clase del Hilo
Código:
package Android.Com.Cronometro;

import android.widget.TextView;

public class Hilo extends Thread{

    TextView tvTime;
    private boolean detenido = false;
    private boolean pausado =true;

    public Hilo(TextView t) {
        tvTime = t;
    }
    int minutos=00, segundos=00, horas=00;
    public void run()
    {
        while(!this.detenido)
        {
            while(!this.pausado)
            {
                try {
                    if (segundos == 59) {
                        segundos = 00;
                        minutos++;
                    }
                    if (minutos == 59) {
                        minutos = 00;
                        horas++;
                    }
                    segundos++;
                    tvTime.setText(horas + ":" + minutos + ":" + segundos);
                    sleep(1000);
                } catch (Exception ex) {
                    ex.printStackTrace();
                }
            }
        }
    }
        public void pausar()
        {
            this.pausado = true;
        }

        public void continuar()
        {
            this.pausado = false;
        }

        public void detener()
        {
            this.pausar();
            this.detenido = true;
        }
            public boolean isDetenido() {
            return detenido; 
        }

        public boolean isPausado() {
            return pausado;
        }
}
El codigo esta bastante "beta", es mi primer programa x ahora solo quiero hacerlo andar.. desp me pondre a depurar detalles y hacer la version final.. Muchas gracias!

Última edición por leor285 Día 12/03/10 a las 16:44:29.
Responder Con Cita
  #3  
Viejo 29/03/10, 12:13:40
Array

[xs_avatar]
cohone cohone no está en línea
Miembro del foro
 
Fecha de registro: sep 2009
Mensajes: 163

Hola.

Yo no te puedo ayudar con tu problema, ya que no soy programador, pero me ha chocado un poco la forma que tienes de calcular el tiempo... con un sleep 1000?, no se supone que eso ya es un segundo? El resto del tiempo empleado en ejecutar las instrucciones te va a crear una medida de tiempo muy poco precisa (eso creo, vamos).

No te lo tomes a mal..., pero te aconsejo que uses otro método, no se si será el mejor, pero creo que lo ideal sería usar el RTC (real time clock).
Seguro que android ya proporciona clases y funciones para hacerlo.


Saludos
Responder Con Cita
  #4  
Viejo 29/03/10, 15:52:27
Array

[xs_avatar]
diamant-x diamant-x no está en línea
Usuario muy activo
 
Fecha de registro: ago 2008
Mensajes: 1,549

A pesar que he visto que ya lo has solucionado en otro foro te pongo aqui lo qu eencontré buscanod una funcion que me actualizase automaticamente una interfaz, seguramente podrás mejorar el cronometro con ello.

http://developer.android.com/intl/de...rmManager.html
Responder Con Cita
  #5  
Viejo 29/03/10, 18:45:42
Array

[xs_avatar]
vierco vierco no está en línea
Android Dev
· Votos compra/venta: (1)
 
Fecha de registro: may 2008
Localización: Pamplona
Mensajes: 6,095
Modelo de smartphone: Nexus varios
Tu operador: Orange
Gracias por compartirlo compi
Responder Con Cita
  #6  
Viejo 16/04/10, 05:19:10
Array

[xs_avatar]
leor285 leor285 no está en línea
Usuario novato en la web
 
Fecha de registro: feb 2009
Mensajes: 6
Modelo de smartphone: Diamond

Gracias a los q respondieron, si efectivamente ya lo habia podido solucionar, y respecto a lo q dicen de la precision, le cambie el sleep x 10 para tener precision de centisimas, aunque sinceramente poco me importaba la precision, xq el objetivo del programa era aprender a programar algo en Android..
Responder Con Cita
Respuesta

Estás aquí
Regresar   Portal | Indice > Todo sobre Android > Programación y Desarrollo para Android



Hora actual: 10:02:46 (GMT +2)



User Alert System provided by Advanced User Tagging (Lite) - vBulletin Mods & Addons Copyright © 2025 DragonByte Technologies Ltd.

Contactar por correo / Contact by mail / 邮件联系 /