【Android】开发一个简单时钟应用每天看时间起床

news2024/10/6 22:25:22

有没有想过,家里闲置不用的旧手机可以当时钟闹钟来用,觉得这个想法可以吧,把闲置手机充分利用起来了呢,接下来给大家讲一下如何实现,功能简单,可以当作编程入门课。

在电脑上,打开我们熟悉的AndroidStudio开发工具,选择新建一个项目,名字自己随意填,例如我的叫AlarmClock,选择空页模板,然后等待它创建好

先找到文件activity_main.xml,去做一下布局,设置一下横屏,布局完成后,效果如下图所示
在这里插入图片描述
接下来,找到文件MainActivity.java,开始写代码,很简单的,只需少许代码,详细如下

public class MainActivity extends AppCompatActivity {

    TextView showTime,showHour,showMinue,showDiv;
    Timer timer = null;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);

        Window w = getWindow();
        //保持屏显常亮
        w.addFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON);

        //隐藏状态栏
        w.addFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN);

        //隐藏标题栏
        ActionBar aBar = getSupportActionBar();
        if(aBar!=null){
            aBar.hide();
        }else{
            this.requestWindowFeature(Window.FEATURE_NO_TITLE);
        }

        setContentView(R.layout.activity_main);
        showTime = this.findViewById(R.id.show_time);
        showHour = this.findViewById(R.id.textView_h);
        showMinue = this.findViewById(R.id.textView_m);
        showDiv = this.findViewById(R.id.textView_div);

        //线程通信
        final Handler handler = new Handler();
        //更新UI
        final Runnable run = new Runnable() {
            @Override
            public void run() {
                updateShowTime();
            }
        };
        //定时器
        TimerTask tTask = new TimerTask() {

            @Override
            public void run() {
                handler.post(run);
            }
        };
        timer = new Timer();
        timer.schedule(tTask,0,1000);
    }

    private void updateShowTime() {
        Date time = new Date();

        showHour.setText(String.format("%02d",time.getHours()));
        showMinue.setText(String.format("%02d",time.getMinutes()));
        showTime.setText(String.format("%02d",time.getSeconds()));

        if(showDiv.getVisibility()== View.VISIBLE){
            showDiv.setVisibility(View.INVISIBLE);
        }else{
            showDiv.setVisibility(View.VISIBLE);
        }
    }

    @SuppressLint("SourceLockedOrientationActivity")
    @Override
    protected void onResume() {
        if(getRequestedOrientation()!= ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE){
            setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE);
        }
        super.onResume();
    }

    @Override
    protected void onDestroy() {
        if(this.mReceiver!=null) {
            this.unregisterReceiver(this.mReceiver);
        }
        if(this.timer!=null) {
            this.timer.cancel();

        }
        getWindow().clearFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON);
        super.onDestroy();
    }
}

于是,一个时钟应用就这样完成了,放在手机上运行,效果如下图(别说喔在那个时候搞的,是模拟器上截图,时间P的不准哦
在这里插入图片描述

如果需要再加个闹钟,到点就响那种,请自行研究,
使用AlarmManager这个类,还有BroadcastReceiver类,
具体怎么写呢,这里不多说,到此结束,走了走了。

听说,只要把这个应用装在手机上,睡觉前就打开,放到手机架上,明天一早醒来就能第一个开眼看到时间,心想着再睡一会儿吗,不知道是谁的闹钟放了一首歌:有个懒猪起床了,太阳都晒屁股了…
请添加图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/179554.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【设计模式】结构型模式·享元模式

学习汇总入口【23种设计模式】学习汇总(数万字讲解体系思维导图) 写作不易,如果您觉得写的不错,欢迎给博主来一波点赞、收藏~让博主更有动力吧! 一.概述 定义:运用共享技术来有效地支持大量细粒度对象的复用。通过共享已经存在的对…

厚积薄发打卡Day115:Debug设计模式<简单工厂、工厂方法、抽象工厂>

厚积薄发打卡Day115&#xff1a;Debug设计模式<简单工厂、工厂方法、抽象工厂> 简单工厂 定义 由一个工厂对象决定创建出哪一种产品类的实例&#xff08;严格意义并不是设计模式&#xff0c;更是一种风格&#xff09; 类型&#xff1a;创建型&#xff0c;但不属于GOF…

PyAutoFEP Tutorial--基于Gromacs

PyAutoFEP 自由能微扰计算–基于Gromacs 简介 注意&#xff1a;以下教程假定读者熟悉分子动力学 (MD) 和自由能微扰 (FEP) 理论。此外&#xff0c;了解 GROMACS 工具、拓扑和输入文件也很有用。整个教程都使用 Linux 命令行。最后&#xff0c;建议用户阅读并参考 PyAutoFEP 手…

17种编程语言+10种排序算法

开源地址 https://gitee.com/lblbc/simple-works/tree/master/sort 覆盖语言&#xff1a;C、C、C#、Java、Kotlin、Dart、Go、JavaScript(JS)、TypeScript(TS)、ArkTS、swift、PHP。 覆盖平台&#xff1a;安卓(Java、Kotlin)、iOS(SwiftUI)、Flutter(Dart)、Window桌面(C#)、前…

AI算法工程师 | 09机器学习-概率图模型(二)朴素贝叶斯算法与文本分类(1)

目录机器学习 - 概率图模型 之 朴素贝叶斯算法一、贝叶斯与朴素贝叶斯算法1、相关概念2、朴素贝叶斯分类的工作流程3、朴素贝叶斯的优缺点二、文本分类1、one-hot 编码2、TF-IDF 词频-逆文档频率3、代码&#xff1a;基于朴素贝叶斯实现文本分类&#xff08;使用 Python 手动实现…

力扣刷题| 239. 滑动窗口最大值、347.前 K 个高频元素

文章目录LeetCode 239. 滑动窗口最大值题目链接&#x1f517;思路代码实现LeetCode 347.前 K 个高频元素题目链接&#x1f517;思路代码实现LeetCode 239. 滑动窗口最大值 题目链接&#x1f517; LeetCode 239. 滑动窗口最大值 思路 这是使用单调队列的经典题目 难点是如何…

html列表

1.无序列表&#xff1a; 场景&#xff1a;在网页中表示一组无顺序之分的列表 如&#xff1a;新闻列表 标签组成&#xff1a; ul&#xff1a; 表示无序列表的整体&#xff0c;用于包裹li标签 li&#xff1a;表示无序列表的每一项&#xff0c;用于包含每一行的内容 注意点&…

Makefile学习③:编译流程

Makefile学习③&#xff1a;编译流程 学习前准备 实现七个文件的编写&#xff0c;例如&#xff1a;实现加减乘三个函数的.c文件和.h文件的编写加上主函数main.c&#xff0c;方便后续使用Makefile将其分别编译。 博主的demo如下&#xff1a; 使用gcc 命令将所有文件编译出来生…

线程控制--Linux

文章目录线程理解线程的优点与缺点进程的多个线程共享线程控制线程创建线程终止线程等待线程分离总结线程理解 谈及线程&#xff0c;就不得不谈起进程与线程的关系了。学习完前面有关进程的知识&#xff0c;之前我们对进程的定义是&#xff1a;内核数据结构代码和数据。但是今…

C语言return的用法详解,C语言函数返回值详解

函数的返回值是指函数被调用之后&#xff0c;执行函数体中的代码所得到的结果&#xff0c;这个结果通过 return 语句返回。return 语句的一般形式为&#xff1a;return 表达式;或者&#xff1a;return (表达式);有没有( )都是正确的&#xff0c;为了简明&#xff0c;一般也不写…

python使用类装饰器生成函数的使用日志

1 什么是类装饰器 在了解类装饰器之前&#xff0c;建议大家先了解装饰器的概念。 装饰器知识快速入门链接 类装饰器是 Python 中的一种特殊类型的装饰器&#xff0c;它是一个类而不是一个函数。与函数装饰器不同&#xff0c;类装饰器可以在运行时接收参数并返回一个可调用的对…

Linux文件系统(IO缓冲区+磁盘+软硬链接)

目录 一、缓冲区 1.1 缓冲区是内存的一块存储空间 1.2 缓冲区的作用 1.3 C式缓冲区 1.3.1 C语言的FILE结构体 1.3.2 C式缓冲区刷新策略 二、OS与内核缓冲区 2.1 数据从缓冲区到磁盘 2.2 fsync() 数据免缓冲直接到磁盘文件 2.3 检验用户与内核缓冲区 三、文件系统 3…

11. 好客租房-ElasticSearch入门学习

Elaticsearch&#xff0c;简称为es&#xff0c; es是一个开源的高扩展的分布式全文检索引擎&#xff0c;它可以近乎实时的存储、检索数据&#xff1b;本身扩展性很好&#xff0c;可以扩展到上百台服务器&#xff0c;处理PB级别的数据。es也使用Java开发并使用Lucene作为其核心来…

分享144个ASP源码,总有一款适合您

ASP源码 分享144个ASP源码&#xff0c;总有一款适合您 下面是文件的名字&#xff0c;我放了一些图片&#xff0c;文章里不是所有的图主要是放不下...&#xff0c; 144个ASP源码下载链接&#xff1a;https://pan.baidu.com/s/15O9p6a8XlNN0u-wFKEkJqQ?pwd8354 提取码&#x…

Go 语言

Go语言是云计算时代的语言 Go语言2007年诞生于Google&#xff0c;2009年开源&#xff0c;Go语言与区块链技术一样年轻 本文是对Go语言基本语法的总结 目录 Go词法单元 token Go的token 标识符 内置数据类型标识符 常量值标识符 空白标识符 关键字 程序整体结构的关键字…

VBA提高篇_05日期时间函数

文章目录日期函数1. Date()2. Time()3. Now()时间数据解析函数时间运算函数DateDiff() 数据时间差DateAdd() 时间点指定跨越拓展日期函数 VBA中默认日期系统格式: #1/26/2023 12:20:25 # #月/日/年 时:分:秒# 1. Date() 获取当前系统的时间(年/月/日) 精度: 精确到秒 范围: 公…

Tomcat-HTTP服务器介绍、安装与使用

文章目录一、概述二、下载安装三、介绍四、启动Tomcat一、概述 Tomcat&#xff0c;是一个 HTTP 服务器&#xff0c;就是在 TCP 服务器的基础上&#xff0c;加上了一些额外的功能。使用 HTTP 服务器的 API。就可以来提取HTTP请求的内容&#xff0c;也可以构造HTTP响应 二、下载…

【GPLT 二阶题目集】L2-015 互评成绩

学生互评作业的简单规则是这样定的&#xff1a;每个人的作业会被k个同学评审&#xff0c;得到k个成绩。系统需要去掉一个最高分和一个最低分&#xff0c;将剩下的分数取平均&#xff0c;就得到这个学生的最后成绩。本题就要求你编写这个互评系统的算分模块。 输入格式&#xff…

HBase原理和设计

简介 HBase —— Hadoop Database的简称&#xff0c;Google BigTable的另一种开源实现方式&#xff0c;从问世之初&#xff0c;就为了解决用大量廉价的机器高速存取海量数据、实现数据分布式存储提供可靠的方案。从功能上来讲&#xff0c;HBase不折不扣是一个数据库&#xff0…

EcoStruxure Operator Terminal Expert 操作员终端专家

EcoStruxure Operator Terminal Expert&#xff08;以前称为 Vijeo XD&#xff09;是一款具有最新 UI 设计和手势的触摸屏配置软件&#xff0c;使您能够为 Magelis HMI 和 iPC 创建和编辑应用程序屏幕。 特点&#xff1a; 变量——内存中用于存储数据的命名空间。创建您需要的所…