简体   繁体   English

Android Studio计时表通过不同活动的时间

[英]Android Studio chronometer time through different activities

I am trying to get chronometer to maintain its time throughout different activities. 我正在尝试使天文钟在各种活动中保持其时间。 I have the chronometer in a fragment that I have at the bottom of each activity. 在每个活动的底部,我都有一个计时器。 So basically once it switches from MainActivity to Corsi I want the clock to be the same. 所以基本上,一旦它从MainActivity切换到Corsi,我希望时钟是相同的。

MainActivity 主要活动

public class MainActivity extends AppCompatActivity implements hold_undo_fragment.toggleButtonListener{

    Chronometer chronometer;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        //runBeaconDistances();
        chronometer = (Chronometer) findViewById(R.id.clock);
        chronometer.setBase(SystemClock.elapsedRealtime());
        chronometer.start();
    }

    public void toCorsi(View view){
        Intent myIntent = new Intent(MainActivity.this.getBaseContext(), corsi.class);
        myIntent.putExtra("time", chronometer.getBase() - SystemClock.elapsedRealtime()); // or thisSystemClock.elapsedRealtime() - chronometer.getBase() but neither works
        startActivity(myIntent);

    }
}

Corsi activity Corsi活动

public class corsi extends AppCompatActivity implements hold_undo_fragment.toggleButtonListener {

    Chronometer chronometer;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_corsi);
        Bundle timeData = getIntent().getExtras();
        if (timeData == null)
            return;;
        long millis = timeData.getLong("time");

        chronometer = (Chronometer) findViewById(R.id.clock);
        chronometer.setBase(millis);
        chronometer.start();
    }
}

and what happens is that once I enter main activity the clock starts from 00:00 and starts counting up (like it is supposed to). 发生的事情是,一旦我进入主要活动,时钟便从00:00开始并开始计数(应该是这样)。 But once I switch to Corsi it gets the system time (27:00:..) which is not what I am trying to do. 但是一旦我切换到Corsi,它就会得到系统时间(27:00:..),这不是我要尝试的时间。 Please help, thank you. 请帮忙,谢谢。

You should start a service for this task. 您应该为此任务启动服务。 Subscribe/unsubscribe to updates from activities with a callback 通过回调订阅/取消订阅活动的更新

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM