Android Studio計時器的簡單使用
- 前言
- 一、計時操作
-
- 1.背景代碼展示
- 2.代碼解釋
- 二、源碼
- 總結
前言
唉 本菜雞又要來獻醜了。沒辦法,為了得到你們的贊,我要更努力才行。好了,開始獻醜,後面有源碼哦!
界面代碼我就不寫說明了,但還是會有源碼的呢
一、計時操作
我先來說一下具體的過程,我這裡實作的功能是,你退出程式,計時會暫停,當你再次進入程式的時候計時會從你退出的那個時間開始計時(退出不是把背景也關閉哦,親),這樣就保證了計時的準确性。
1.背景代碼展示
MainActivity.java
2.代碼解釋
其實圖檔中我都給了解釋的呢,但是還有一些還是要說一下。我通過利用Activity的中的兩個生命周期方法進行操作。onPause是退出的時候執行的方法,onResume是你再次進入時執行的方法。退出時,得到退出程式的這段時間中計時器改變的時間,然後讓計時器停止。再次進入時,得到第二次進入的時間 并把資料設定到界面中去。
二、源碼
activity_main.xml
<?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context=".MainActivity9">
<Chronometer
android:id="@+id/textView15"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="TextView"
android:textSize="30sp"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent" />
</androidx.constraintlayout.widget.ConstraintLayout>
MainActivity.java
package com.example.getpack;
import androidx.appcompat.app.AppCompatActivity;
import android.os.Bundle;
import android.os.SystemClock;
import android.widget.Chronometer;
public class MainActivity9 extends AppCompatActivity {
Chronometer chronometer;
private long time;//定義一個參數用來儲存時間
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main9);
chronometer = findViewById(R.id.textView15);
chronometer.setBase(SystemClock.elapsedRealtime());//得到豪秒數,系統啟動時就計時
}
@Override
protected void onPause() {
time = SystemClock.elapsedRealtime() - chronometer.getBase();//退出程式加載的時間等于第二次進入程式的時間減去退出時的時間
chronometer.stop();
super.onPause();
}
@Override
protected void onResume() {
chronometer.setBase(SystemClock.elapsedRealtime() - time);
chronometer.start();
super.onResume();
}
}
總結
這次分享給大家的知識是很簡單的哦,下次我會分享給你們一個電腦的程式 嘻嘻嘻,如果家裡有一年級的小朋友,那就在合适不過了。如果有問題記得私信我哦 謝謝!