0

I have implemented two chronometers in a same activity and so far they are working fine. But when I change activities and then come back to them, they are at 00:00. I need them to keep counting "forever" until I hit the stop button. How can I do that?

And is it possible to make that counting appear also in another activity, so that I can follow up the counting in either activity? It has to be the same counting. Just two different places where I can follow the up from.

I tried a solution with onRestoreInstanceState but I am really confused. I am really new to coding and simple things are still frustrating to me. I am getting something wrong at the set.Base().

    Chronometer cronometro_primeira_marca, cronometro_segunda_marca;
    Button btn_iniciar_cronometro_primeira_marca, btn_parar_cronometro_primeira_marca, btn_resetar_cronometro_primeira_marca;
    Button btn_iniciar_cronometro_segunda_marca, btn_parar_cronometro_segunda_marca, btn_resetar_cronometro_segunda_marca;
    String timer1, timer2;




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


        cronometro_primeira_marca = (Chronometer) findViewById(R.id.cronometro_primeira_marca);
        cronometro_segunda_marca = (Chronometer) findViewById(R.id.cronometro_segunda_marca);
        btn_iniciar_cronometro_primeira_marca = (Button) findViewById(R.id.btn_iniciar_cronometro_primeira_marca);
        btn_parar_cronometro_primeira_marca = (Button) findViewById(R.id.btn_parar_cronometro_primeira_marca);
        btn_resetar_cronometro_primeira_marca = (Button) findViewById(R.id.btn_resetar_cronometro_primeira_marca);
        btn_iniciar_cronometro_segunda_marca = (Button) findViewById(R.id.btn_iniciar_cronometro_segunda_marca);
        btn_parar_cronometro_segunda_marca = (Button) findViewById(R.id.btn_parar_cronometro_segunda_marca);
        btn_resetar_cronometro_segunda_marca = (Button) findViewById(R.id.btn_resetar_cronometro_segunda_marca);

        btn_iniciar_cronometro_primeira_marca.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                    cronometro_primeira_marca.setBase(SystemClock.elapsedRealtime());
                    cronometro_primeira_marca.start();

            }
        });

        btn_iniciar_cronometro_segunda_marca.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                cronometro_segunda_marca.setBase(SystemClock.elapsedRealtime());
                cronometro_segunda_marca.start();
            }
        });

        btn_parar_cronometro_primeira_marca.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                    cronometro_primeira_marca.stop();

            }
        });
        btn_parar_cronometro_segunda_marca.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                cronometro_segunda_marca.stop();
            }
        });
        btn_resetar_cronometro_primeira_marca.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                cronometro_primeira_marca.setBase(SystemClock.elapsedRealtime());

            }
        });
        btn_resetar_cronometro_segunda_marca.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                cronometro_segunda_marca.setBase(SystemClock.elapsedRealtime());
            }
        });


    }

    @Override
    protected void onSaveInstanceState(Bundle outState) {
        outState.putLong("Restored_time1", SystemClock.elapsedRealtime());
        super.onSaveInstanceState(outState);


    }
    @Override
    protected void onRestoreInstanceState(Bundle savedInstanceState) {
        if((savedInstanceState !=null)&& savedInstanceState.containsKey("Restored_time1")){
            SystemClock.elapsedRealtime().**setBase**(savedInstanceState.getLong("Restored_time1"));
        }
        super.onRestoreInstanceState(savedInstanceState);
    }
}
Mark Rotteveel
  • 100,966
  • 191
  • 140
  • 197
  • Does this answer your question? [Android application restarts on orientation change](https://stackoverflow.com/questions/4075540/android-application-restarts-on-orientation-change) – jnovack Oct 04 '20 at 20:17
  • That's bad advice, please don't suggest disabling activity recreation in place of fixing issues properly. – Ryan M Oct 06 '20 at 09:40
  • @RyanM, please, could you help me with some suggestions? Issue is still not solved :( – Alessandro Silva Oct 06 '20 at 10:53

0 Answers0