天天看點

Android Studio計時器的簡單使用前言一、計時操作二、源碼總結

Android Studio計時器的簡單使用

  • 前言
  • 一、計時操作
    • 1.背景代碼展示
    • 2.代碼解釋
  • 二、源碼
  • 總結

前言

唉 本菜雞又要來獻醜了。沒辦法,為了得到你們的贊,我要更努力才行。好了,開始獻醜,後面有源碼哦!

界面代碼我就不寫說明了,但還是會有源碼的呢

一、計時操作

我先來說一下具體的過程,我這裡實作的功能是,你退出程式,計時會暫停,當你再次進入程式的時候計時會從你退出的那個時間開始計時(退出不是把背景也關閉哦,親),這樣就保證了計時的準确性。

1.背景代碼展示

MainActivity.java

Android Studio計時器的簡單使用前言一、計時操作二、源碼總結

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();
    }
}
           

總結

這次分享給大家的知識是很簡單的哦,下次我會分享給你們一個電腦的程式 嘻嘻嘻,如果家裡有一年級的小朋友,那就在合适不過了。如果有問題記得私信我哦 謝謝!