0 votos

Hola, estoy tratando de hacer un juego pero tengo un problema, cuando el usuario sale de la aplicacion o apaga el celular la cuenta atras no continua. Como puedo hacer para siga contando?

El codigo de mi cuenta atras:

public class MainActivity extends Activity {
Button b1;
TextView tv1;

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);

    tv1 = (TextView) findViewById(R.id.tv1);
    b1 = (Button) findViewById(R.id.b1);
}

@Override
public boolean onCreateOptionsMenu(Menu menu) {
    // Inflate the menu
    // this adds items to the action bar if it is present.
    getMenuInflater().inflate(R.menu.menu_main, menu);
    return true;
}

@Override
public boolean onOptionsItemSelected(MenuItem item) {
    // Handle action bar item clicks here. The action bar will
    // automatically handle clicks on the Home/Up button, so long
    // as you specify a parent activity in AndroidManifest.xml.
    int id = item.getItemId();

    //noinspection SimplifiableIfStatement
    if (id == R.id.action_settings) {
        return true;
    }

    return super.onOptionsItemSelected(item);
}

public void a(View view){
    new CountDownTimer(10000, 1000) {
        public void onTick(long millisUntilFinished) {
            tv1.setText("La cuenta llega a 0 en: " + millisUntilFinished / 1000);
        }
        public void onFinish() {
            tv1.setText("Listo!");
        }
    }.start();
}

}

preguntado por Zekirak Jun 19, 2016 en Android

1 Respuesta

0 votos
Para que siga ocurriendo algo al cerrar la aplicación (o una Activity en particular) lo mejor es un Service. Si se apaga el móvil no hay nada procesando, con lo que no puedes dejar nada en segundo plano, así que te quedan dos opciones: pasar el valor de la cuenta atrás a un servidor para que siga contando desde ahí; o guardar el tiempo y recalcular lo que le queda de cuenta atrás en cuanto arranque el móvil o abra la aplicación.
respondido por Ramon [Admin] Jun 22, 2016