Android Studio计时器的简单使用

Android Studio小知识 同时被 2 个专栏收录
1 篇文章 0 订阅
1 篇文章 0 订阅


前言

唉 本菜鸡又要来献丑了。没办法,为了得到你们的赞,我要更努力才行。好了,开始献丑,后面有源码哦!


界面代码我就不写说明了,但还是会有源码的呢

一、计时操作

我先来说一下具体的过程,我这里实现的功能是,你退出程序,计时会暂停,当你再次进入程序的时候计时会从你退出的那个时间开始计时(退出不是把后台也关闭哦,亲),这样就保证了计时的准确性。

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

总结

这次分享给大家的知识是很简单的哦,下次我会分享给你们一个计算器的程序 嘻嘻嘻,如果家里有一年级的小朋友,那就在合适不过了。如果有问题记得私信我哦 谢谢!

  • 0
    点赞
  • 0
    评论
  • 8
    收藏
  • 一键三连
    一键三连
  • 扫一扫,分享海报

©️2021 CSDN 皮肤主题: 1024 设计师:白松林 返回首页
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、C币套餐、付费专栏及课程。

余额充值