简易APP实现Android定时关机
- 格式:docx
- 大小:133.56 KB
- 文档页数:6
华为手机的定时关机和开机技巧华为手机作为一款领先的智能手机品牌,拥有众多实用的功能和技巧。
其中,定时关机和开机功能是许多用户经常使用的特性之一。
本文将介绍华为手机的定时关机和开机技巧,并为读者提供详细的操作步骤和注意事项。
一、定时关机技巧华为手机提供了定时关机功能,可以在设定的时间自动关闭手机,为用户提供便利。
下面是使用华为手机定时关机功能的步骤:1. 打开手机设置界面:在主屏幕上找到“设置”图标,点击进入设置界面。
2. 进入“智能辅助”选项:在设置界面中,向下滑动找到“智能辅助”选项,并点击进入。
3. 找到“定时开关机”功能:在智能辅助界面中,向下滑动找到“定时开关机”选项,并点击进入。
4. 设置关机时间:在定时开关机界面中,选择“定时关机”选项,并设置关机时间。
可以选择每天的具体时间,或者设定一次性的关机时间。
5. 保存设置:完成关机时间的设定后,点击“保存”按钮,系统将自动保存设置。
需要注意的是,定时关机功能只在设定的时间内生效,如果在关机时间到达之前手动开机,定时关机将失效。
此外,定时关机功能在手机处于关闭状态时不会生效。
二、定时开机技巧华为手机还提供了定时开机功能,可以在设定的时间自动开启手机。
下面是使用华为手机定时开机功能的操作步骤:1. 打开手机设置界面:在主屏幕上找到“设置”图标,点击进入设置界面。
2. 进入“智能辅助”选项:在设置界面中,向下滑动找到“智能辅助”选项,并点击进入。
3. 找到“定时开关机”功能:在智能辅助界面中,向下滑动找到“定时开关机”选项,并点击进入。
4. 设置开机时间:在定时开关机界面中,选择“定时开机”选项,并设置开机时间。
可以选择每天的具体时间,或者设定一次性的开机时间。
5. 保存设置:完成开机时间的设定后,点击“保存”按钮,系统将自动保存设置。
需要注意的是,定时开机功能只在设定的时间内生效,如果在开机时间到达之前手动关机,定时开机将失效。
此外,定时开机功能在手机处于开启状态时不会生效。
如何设置手机自动关机时间手机已经成为我们生活中不可或缺的一部分,几乎每个人都有一部手机。
然而,长时间使用手机不仅对我们的身体健康有害,还会对我们的生活产生负面影响。
为了解决这个问题,设置手机自动关机时间是一个非常有效的方法。
本文将探讨如何设置手机自动关机时间,以帮助我们更好地管理手机使用时间。
首先,我们需要了解为什么需要设置手机自动关机时间。
长时间使用手机不仅容易导致眼睛疲劳,还会影响我们的睡眠质量。
在睡前使用手机会使我们的大脑兴奋,导致入睡困难。
此外,过度使用手机还会影响我们的社交能力和注意力集中能力。
因此,设置手机自动关机时间可以帮助我们控制使用时间,保护我们的身心健康。
其次,我们需要了解如何设置手机自动关机时间。
对于Android手机用户,可以通过设置中的“定时开关机”功能来实现。
在设置中找到“定时开关机”选项,选择设置手机自动关机和开机的时间。
可以根据个人需求设置关机时间,比如在晚上10点到早上7点之间自动关机。
这样就能够有效地控制使用时间,保证良好的睡眠。
对于苹果手机用户,可以通过设置中的“勿扰模式”来实现类似的功能。
在设置中找到“勿扰模式”选项,选择设置手机自动开启和关闭勿扰模式的时间。
可以根据个人需求设置勿扰模式的开启和关闭时间,比如在晚上11点到早上8点之间开启勿扰模式。
这样就能够屏蔽来电和短信的干扰,保证良好的睡眠。
除了设置手机自动关机时间,我们还可以采取其他措施来限制手机使用时间。
例如,可以设置手机的应用使用时间限制。
对于Android手机用户,可以在设置中找到“应用和通知”选项,选择“应用使用时间管理”。
在这里,可以设置每天使用某个应用的时间限制,比如每天只能使用社交媒体应用1小时。
对于苹果手机用户,可以在设置中找到“使用时间”选项,选择“应用限制”。
在这里,可以设置每天使用某个应用的时间限制,同样可以限制社交媒体应用的使用时间。
此外,还可以利用一些辅助工具来帮助我们控制手机使用时间。
手机远程关机方法随着科技的不断发展,手机已经成为现代人生活中不可或缺的一部分。
然而,有时候我们会遇到一些意外情况,需要远程关机手机。
本文将介绍几种手机远程关机的方法,以帮助读者在必要的时候快速解决问题。
方法一:通过系统设置远程关机现在很多手机都自带了远程关机的功能,只需要在系统设置中进行简单的设置即可。
以下是具体步骤:1. 打开手机的设置应用。
2. 找到“安全与隐私”或类似名称的选项。
3. 在安全与隐私选项中,找到“远程控制”或类似名称的设置。
4. 进入远程控制设置后,启用远程关机功能。
5. 设置一个密码,以便在远程关机时进行验证。
6. 保存设置后,你现在可以使用其他设备远程关机你的手机了。
方法二:通过手机管理软件远程关机使用手机管理软件也是一个便捷的远程关机方法。
在应用商店中有很多安全管理软件可供选择,这些软件不仅可以帮助你保护手机安全,还提供了远程关机功能。
以下是具体步骤:1. 打开应用商店,搜索并下载一款手机管理软件,如360安全卫士、腾讯手机管家等。
2. 安装并打开手机管理软件,按照软件的指引完成相应的设置和授权。
3. 在软件的功能列表中找到远程关机功能,并启用它。
4. 设置一个密码,以确保只有你可以远程关机你的手机。
5. 保存设置后,你现在可以通过该手机管理软件的远程关机功能来关机你的手机了。
方法三:通过拨打运营商服务热线远程关机如果你不知道如何设置远程关机功能,或者你的手机没有自带这个功能,你可以尝试拨打你的运营商服务热线来请求远程关机。
以下是具体步骤:1. 找到你的运营商服务热线号码,这通常可以在手机上的SIM卡套上找到。
2. 使用其他手机或座机拨打运营商服务热线。
3. 在与客服人员的沟通中,说明你的手机已经丢失或被盗,并请求远程关机。
4. 根据客服人员的指引提供必要的信息,如手机号码、身份证明等。
5. 客服人员会确认你的身份后,帮助你远程关机你的手机。
总结:远程关机手机是现代人生活中不可或缺的一项功能。
基于Android的定时提醒App的开发与实现
王云志
【期刊名称】《新一代信息技术》
【年(卷),期】2022(5)1
【摘 要】随着智能手机的快速发展以及Android开发平台的不断完善,基于日常生
活中人们对时间管理的需求,笔者通过借鉴一些常用的时间管理类App的设计风格
与重要功能,从“定时提醒”这一角度进行探究,尝试开发一款以定时提醒和计时功
能为主的时间管理App。该App实现了定时提醒、计时、日历、记事、秒表等功
能,重点突出定时提醒和计时功能,使用户培养良好的时间观念,缓解“截止日期恐惧
症”,拥有高效率的人生。
【总页数】5页(P27-30)
【关键词】安卓系统;时间管理;定时提醒;计时
【作 者】王云志
【作者单位】上海工程技术大学
【正文语种】中 文
【中图分类】TP316
【相关文献】
1.基于Android系统广播机制下的网络状态变化提醒APP的实现2.基于Android
的"作息学习提醒助手"APP的开发3.基于Android的课表提醒APP程序设计与实
现4.基于Android开发框架的新闻类APP的设计与实现5.基于Android开发框
架的新闻类APP的设计与实现
因版权原因,仅展示原文概要,查看原文内容请购买
定时器定时器的实现,涉及很多方面。
Handler2里面展示了其中一种方法,这里说一下另外的方法。
定义一个Timer实例,每隔一段时间向Handler发送一个消息,Handler接受到消息后,执行更新。
而我们这里的更新,不再是简单是setText,而是继承View类自己绘制图画。
总体流程如上所述,具体每个步骤如下:TimerTimer是一个定时器类,专门用来做定时器的。
其中,方法public void schedule (TimerTask task, long delay, long period)是用来开始时延迟delay长的时间,每隔period段时间执行任务task的方法。
可以实现计时器的功能。
timer.schedule(new TimerTask() {@Overridepublic void run() {// TODO Auto-generated method stub····handler.sendEmptyMessage(0x123);}}}, 0, 100);//参数定义隔几秒刷新一次实现run方法,把操作填进里面。
向Handler发送消息,告诉其应该处理消息(更新页面)HandlerHandler是个老话题,定义Handler,然后实现其HandlerMessage的方法,处理消息,具体的是://handler类,处理线程消息。
更新主线程final Handler handler = new Handler() {@Overridepublic void handleMessage(Message msg) {// TODO Auto-generated method stubif (msg.what == 0x123) {timeView.invalidate();}}};View用View来绘制图画,可以有比较大的自由度。
首先,定义类继承View,然后实现其中的构造函数,和OnDraw方法。
批处理实现定时关机和定时启动程序批处理是一种可以自动化执行一系列命令的脚本语言。
在批处理中,可以通过控制命令来实现定时关机和定时启动程序。
首先,我们来看如何实现定时关机。
1.定时关机在批处理中,可以使用`shutdown`命令来实现定时关机。
该命令的格式如下:```shutdown [/s] [/r] [/t xxx] [/f]```其中,`/s`表示关机,`/r`表示重启。
`/t xxx`表示等待xxx秒后执行关机操作,默认为30秒。
`/f`表示强制关闭不响应的应用程序。
例如,要实现在每天的晚上10点定时关机,可以使用以下命令:```batch```在批处理中,可以使用`start`命令来启动程序。
该命令的格式如下:```start "标题" /D "路径" "程序名" 参数```其中,`/D"路径"`表示指定要启动程序所在的路径。
`"程序名"`表示要启动的程序名称。
`参数`表示程序启动时需要的参数。
例如,要实现在每天的早上8点定时启动记事本程序,可以使用以下命令:```batchstart "" /D "C:\Windows\System32" notepad.exe```这样就可以在执行该批处理后,打开记事本程序。
综上所述,我们可以通过批处理实现定时关机和定时启动程序。
将上述命令放到一个批处理文件中,然后将该文件设置为定时任务即可实现自动执行。
下面是一个完整的例子,该批处理文件可以在每天的晚上10点关机,并在第二天的早上8点启动记事本程序:```batchrem 定时关机start "" /D "C:\Windows\System32" notepad.exe```通过批处理可以实现定时关机和定时启动程序,方便我们自动化执行一系列操作。
oppo手机定时关机命令
oppo手机定时关机命令
oppo手机定时关机命令1
OPPOR9S设置定时关机方法
ColorOS3.0版本取消定时开关机功能。
不过设置中有一个免打扰模式,点开之后有个自动开启功能!打开之后重复可以选择星期,开始时间默认为22:00结束时间为次日7:00。
免打扰模式开启后手机将会静音。
但闹钟和倒计时不会被静音。
开关机的方法路径:
ColorOS3.0版本取消定时开关机功能;
ColorOS2.1及以下版本:设置——常规——更多——定时开关机;
非ColorOS版本:设置——常规——定时开关机。
当手机设置指定时间后,到达指定时间,手机即可自动开机关机。
oppo手机定时关机命令2
手机定时关机功能的`设置,首先要打开手机,找到“设置”图标。
其次,是点击设置图标,找到“系统”—“定时开关机”。
第三,是点击“定时开关机”,就会出现“定时开机”和“定时关机”两个选择。
第四,是点击定时关机,先点击时间,设置关机的时间。
第五,是在点击重复,能够设置每星期哪天自动关机。
android timer用法Android Timer用法Android Timer是一个非常有用的类,它可以帮助我们在Android应用程序中实现定时器功能。
在本文中,我们将介绍如何使用Android Timer类来实现定时器功能。
1. 创建一个Timer对象要使用Android Timer类,我们需要创建一个Timer对象。
我们可以使用以下代码来创建一个Timer对象:```Timer timer = new Timer();```2. 创建一个TimerTask对象接下来,我们需要创建一个TimerTask对象。
TimerTask是一个抽象类,我们需要继承它并实现它的run()方法。
在run()方法中,我们可以编写我们想要执行的代码。
以下是一个简单的TimerTask示例:```TimerTask task = new TimerTask() {@Overridepublic void run() {// 在这里编写你想要执行的代码}};```3. 使用Timer对象调度TimerTask现在,我们已经创建了一个Timer对象和一个TimerTask对象。
接下来,我们需要使用Timer对象调度TimerTask对象。
我们可以使用以下代码来调度TimerTask对象:```timer.schedule(task, delay);```在这里,delay是一个long类型的参数,表示在多长时间后执行TimerTask对象。
例如,如果我们想要在5秒后执行TimerTask对象,我们可以使用以下代码:```timer.schedule(task, 5000);```我们还可以使用以下代码来指定TimerTask对象的执行时间和执行间隔:```timer.schedule(task, delay, period);```在这里,period是一个long类型的参数,表示TimerTask对象的执行间隔。
如何定时关机随着现代科技的快速发展,人们对电子设备的依赖越来越大。
大多数人每天都要与电脑、手机等设备交互,但有时候我们也需要给设备一个休息的机会。
定时关机就是一个很方便的功能,可以帮助我们更好地管理电子设备的使用时间,保护我们的健康和设备的寿命。
本文将介绍如何定时关机,以及如何合理利用这个功能。
1.如何在Windows系统中定时关机在Windows系统中,定时关机功能非常简单易用。
我们可以通过以下步骤来设置一个定时关机计划:1)打开“控制面板”,点击“系统和安全”。
2)选择“计划任务”,点击“创建基本任务”。
3)按照向导的指示,设置任务的名称、描述、触发器(选择“每天”或“一次性”等),以及操作(选择“关机”)。
4)设置关机时间和日期,并保存设置。
这样,你的计算机将会在设定的时间自动关机。
2.如何在Mac系统中定时关机在Mac系统中,定时关机也非常简单。
我们可以通过以下步骤来设置一个定时关机任务:1)打开“系统偏好设置”,点击“能源节能”。
2)点击“计划”标签页。
3)勾选“开机或唤醒时自动启动并关机”,点击“添加计划”。
4)设置关机时间和日期,并保存设置。
这样,你的Mac电脑将会在设定的时间自动关机。
3.如何在手机中定时关机与电脑不同,手机上并没有内置的定时关机功能。
但是,我们可以使用一些第三方应用来实现这个功能。
例如,在安卓系统中,你可以下载并安装一些定时关机应用,如“定时关机助手”。
这些应用通常都有用户友好的界面和简单易用的设置,可以帮助你在设定的时间自动关机。
另外,在苹果iOS系统中,你也可以寻找类似的应用,如“定时关机大师”。
4.如何合理利用定时关机功能虽然定时关机功能可以帮助我们自动关机,但我们也需要合理利用这个功能。
以下是一些建议:- 设定合适的关机时间和日期。
根据个人习惯和需要,选择一个合适的时间点进行关机,例如在睡前半小时关机。
- 不要过度依赖设备。
尽量减少对电子设备的依赖,给自己一些休息的时间,例如在周末整个上午不使用电子设备。
电脑定时关机的几种方法在日常使用电脑的过程中,我们经常会遇到需要定时关机的情况,例如在下载任务完成后,或者需要离开电脑一段时间等等。
为了方便用户,操作系统提供了多种方法来实现电脑定时关机的功能。
下面将介绍其中的几种方法。
一、使用系统自带的定时关机功能大部分操作系统都自带了定时关机功能,使用起来非常方便。
在Windows系统中,我们可以通过以下步骤来设置定时关机:1. 打开开始菜单,点击"运行",输入"cmd"并回车,打开命令提示符窗口;2. 在命令提示符窗口中输入"shutdown -s -t xx",其中xx代表定时关机的时间,单位为秒。
例如,如果我们要在30分钟后关机,就输入"shutdown -s -t 1800";3. 回车后系统会提示定时关机的时间,确认无误后,即可关闭命令提示符窗口。
在指定的时间到达后,电脑将会自动关机。
二、使用第三方软件实现定时关机除了系统自带的功能外,我们还可以使用一些第三方软件来实现定时关机。
这些软件通常提供了更加丰富的功能,可以根据我们的需求进行定制。
以下是一些常用的第三方软件:1. Wise Auto Shutdown:这是一款简单易用的定时关机软件,它提供了多种定时关机的方式,例如定时关机、定时重启、定时锁屏等等。
我们可以根据自己的需要选择相应的操作,然后设置定时时间即可。
2. PC Sleep:这是一款功能强大的定时关机软件,不仅可以定时关机,还可以定时休眠、定时重启等等。
它还提供了一些高级功能,如设置关机条件、定时执行任务等,非常适合有一定需求的用户。
三、使用BIOS设置定时关机除了软件方法外,我们还可以通过设置BIOS来实现定时关机。
BIOS是电脑的基本输入输出系统,可以在开机时通过按下特定的按键进入设置界面。
以下是使用BIOS设置定时关机的步骤:1. 重启电脑,开机后按下进入BIOS设置界面的按键,通常是Del、F2或者F10;2. 在BIOS设置界面中,找到并进入"Power Management"或者"Power Options"等选项;3. 在相应的选项中,找到"Power On By Alarm"或者"RTC Alarm"等选项,将其设置为"Enabled";4. 设置定时关机的时间,保存设置并退出BIOS界面;5. 在指定的时间到达后,电脑将会自动关机。
定时关机小应用程序此小程序是在平台上编写的。
话不多说直接上图(Form1.vb)(Dialog1.vb)(AboutBox1.vb)程序源代码:Form1.vbPublic Class Form1Dim dialog1_1 As Dialog1 = New Dialog1()Dim dateTemp As DateDim dateInterval As LongPrivate Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.LoadTimer1.Enabled = TrueEnd SubPrivate Sub Timer1_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Timer1.TickToolStripStatusLabel1.Text = "当前时间:" + NowEnd SubPrivate Sub添加ToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles添加ToolStripMenuItem.Clickdialog1_1.ShowDialog()If dialog1_1.DialogResult = 1 ThendateTemp = dialog1_1.getDate()Timer2.Enabled = TrueEnd IfEnd SubPrivate Sub删除ToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles删除ToolStripMenuItem.ClickTimer2.Enabled = FalseTextBox1.Text = ""End SubPrivate Sub退出ToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles退出ToolStripMenuItem.ClickMe.Close()End SubPrivate Sub关于ToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles关于ToolStripMenuItem.ClickAboutBox1.Show()End SubPrivate Sub Timer2_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) HandlesTimer2.TickdateInterval = DateDiff("n", TimeOfDay, dateTemp)TextBox1.Text = "关机时间:"+ dateTemp + Space(2) + "当前时间:"+ TimeOfDay + Space(2) + "距离关机有:" + CStr(dateInterval) + "分"If dateTemp = TimeOfDay ThenShell("C:\Windows\System32\shutdown.exe -p", AppWinStyle.Hide)Me.Close()End IfEnd SubEnd ClassDialog1.vbImports System.Windows.FormsPublic Class Dialog1Dim setDate As DatePrivate Sub OK_Button_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles OK_Button.ClicksetDate = MaskedTextBox1.TextMe.DialogResult = System.Windows.Forms.DialogResult.OKMe.Close()End SubPrivate Sub Cancel_Button_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Cancel_Button.ClickMe.DialogResult = System.Windows.Forms.DialogResult.CancelMe.Close()End SubPublic Function getDate() As DateReturn setDateEnd FunctionPrivate Sub Dialog1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.LoadEnd SubEnd ClassAboutBox1.vbPublic NotInheritable Class AboutBox1Private Sub AboutBox1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load' 设置此窗体的标题。
华为手机的定时开关机设置技巧分享在日常生活中,我们经常需要根据自己的作息时间来设置手机的开关机时间。
而华为手机提供了一项非常实用的功能,即定时开关机设置。
通过这一功能,我们可以在指定的时间自动开关机,方便我们管理手机的使用时间,同时也能够省电。
本文将为大家分享华为手机的定时开关机设置技巧,帮助大家更好地利用这一功能。
1. 打开定时开关机设置首先,我们需要打开华为手机的定时开关机设置。
打开手机的设置菜单,向下滑动找到"电池"选项,点击进入。
在电池设置界面中,我们可以看到"定时开关机"的选项,点击进入即可进入定时开关机设置界面。
2. 设置定时开机时间在定时开关机设置界面中,我们可以看到两个选项,分别是"开机时间"和"关机时间"。
我们首先来设置定时开机时间。
点击"开机时间"选项,进入设置界面。
在设置界面中,我们可以选择开机时间的小时和分钟。
根据个人需求,选择合适的时间,点击确定保存设置即可。
3. 设置定时关机时间接下来,我们需要设置定时关机时间。
点击返回到定时开关机设置界面,点击"关机时间"选项,进入设置界面。
在设置界面中,我们同样可以选择关机时间的小时和分钟。
根据个人需求,选择合适的时间,点击确定保存设置即可。
4. 开启定时开关机功能完成定时开机时间和定时关机时间的设置后,我们需要开启定时开关机功能。
在定时开关机设置界面中,我们可以看到"定时开关机"的选项,点击开关即可启用定时开关机功能。
5. 检查定时开关机设置为了确保定时开关机设置的准确性,我们可以进行一次检查。
返回到定时开关机设置界面,我们可以看到已经设置好的开机时间和关机时间。
确保时间设置正确无误后,我们可以放心地使用定时开关机功能了。
通过以上几个简单的步骤,我们就可以成功设置华为手机的定时开关机功能。
这一功能的使用,不仅可以帮助我们合理安排手机的使用时间,还能够节省电量,延长手机的使用寿命。
Android长时间定时任务实现在服务的onStartCommand⽅法⾥⾯使⽤AlarmManager 定时唤醒发送⼴播,在⼴播⾥⾯启动服务 每次执⾏startService⽅法启动服务都会执⾏onStartCommand1、服务定时唤醒 60秒发⼀次⼴播public class MediaService extends Service {public MediaService() {}@Overridepublic IBinder onBind(Intent intent) {// TODO: Return the communication channel to the service.throw new UnsupportedOperationException("Not yet implemented");}/*每次调⽤startService启动该服务都会执⾏*/public int onStartCommand(Intent intent, int flags, int startId) {Log.d("TAG", "启动服务:" + new Date().toString());AlarmManager manager = (AlarmManager) getSystemService(ALARM_SERVICE);long triggerTime = SystemClock.elapsedRealtime() + 60000;Intent i = new Intent(this, AlarmReceiver.class);PendingIntent pi = PendingIntent.getBroadcast(this, 0, i, 0);manager.set(AlarmManager.ELAPSED_REALTIME_WAKEUP, triggerTime, pi);return super.onStartCommand(intent, flags, startId);}}采⽤AlarmManger实现长期精确的定时任务AlarmManager的常⽤⽅法有三个:set(int type,long startTime,PendingIntent pi);//⼀次性setExact(int type, long triggerAtMillis, PendingIntent operation)//⼀次性的精确版setRepeating(int type,long startTime,long intervalTime,PendingIntentpi);//精确重复setInexactRepeating(int type,long startTime,longintervalTime,PendingIntent pi);//⾮精确,降低功耗type表⽰闹钟类型,startTime表⽰闹钟第⼀次执⾏时间,long intervalTime表⽰间隔时间,PendingIntent表⽰闹钟响应动作对以上各个参数的详细解释闹钟的类型:AlarmManager.ELAPSED_REALTIME:休眠后停⽌,相对开机时间AlarmManager.ELAPSED_REALTIME_WAKEUP:休眠状态仍可唤醒cpu继续⼯作,相对开机时间AlarmManager.RTC:同1,但时间相对于绝对时间AlarmManager.RTC_WAKEUP:同2,但时间相对于绝对时间AlarmManager.POWER_OFF_WAKEUP:关机后依旧可⽤,相对于绝对时间绝对时间:1970 年 1⽉ 1 ⽇ 0 点startTime:闹钟的第⼀次执⾏时间,以毫秒为单位,⼀般使⽤当前时间。
Android系统关机的全流程解析在PowerManager的API⽂档中,给出了⼀个关机/重启接⼝:public void reboot (String reason)对于这个接⼝的描述很简单,就是⼏句话。
接⼝的作⽤就是重启设备,⽽且,就算重启成功了也没有返回值。
需要包含REBOOT权限,也就是android.permission.REBOOT唯⼀参数reason代表需要的特定重启模式,⽐如recovery,当然也可以为null。
⼀、上层空间1.frameworks/base/core/java/android/os/PowerManager.java/*** Reboot the device. Will not return if the reboot is* successful. Requires the {@link android.Manifest.permission#REBOOT}* permission.** @param reason code to pass to the kernel (e.g., "recovery") to* request special boot modes, or null.*/public void reboot(String reason){try {mService.reboot(reason);} catch (RemoteException e) {}}mService为IPowerManager Binder接⼝服务。
/*** {@hide}*/public PowerManager(IPowerManager service, Handler handler){mService = service;mHandler = handler;}2.frameworks/base/core/java/android/os/IPowerManager.aidlinterface IPowerManager{...void reboot(String reason);...}3.frameworks/base/services/java/com/android/server/PowerManagerService.java/*** Reboot the device immediately, passing 'reason' (may be null)* to the underlying __reboot system call. Should not return.*/public void reboot(String reason){mContext.enforceCallingOrSelfPermission(android.Manifest.permission.REBOOT, null);if (mHandler == null || !ActivityManagerNative.isSystemReady()) {throw new IllegalStateException("Too early to call reboot()");}final String finalReason = reason;Runnable runnable = new Runnable() {public void run() {synchronized (this) {ShutdownThread.reboot(getUiContext(), finalReason, false);}}};// ShutdownThread must run on a looper capable of displaying the UI.mHandler.post(runnable);// PowerManager.reboot() is documented not to return so just wait for the inevitable.synchronized (runnable) {while (true) {try {runnable.wait();} catch (InterruptedException e) {}}}}4.frameworks/base/services/java/com/android/server/pm/ShutdownThread.java/*** Request a clean shutdown, waiting for subsystems to clean up their* state etc. Must be called from a Looper thread in which its UI* is shown.** @param context Context used to display the shutdown progress dialog.* @param reason code to pass to the kernel (e.g. "recovery"), or null.* @param confirm true if user confirmation is needed before shutting down.*/public static void reboot(final Context context, String reason, boolean confirm) {mReboot = true;mRebootSafeMode = false;mRebootReason = reason;shutdownInner(context, confirm);}这⾥说明是需要重启,且不是安全模式,重启参数为传递下来的reason,shutdownInner的confirm参数是⽤来设置是否有确认提⽰框的,通过reboot接⼝调⽤重启是没有的,为false。
自动关机软件
关于自动关机,方法还是很多的,有些人喜欢自己在运行里面弄,有些人喜欢简单好
操作的软件来控制。
今天,我们就来看看如何用MailBar来实现自动关机。
MailBar是一款小巧实用的免费工具软件,集成了定时关机、屏幕截图、快速隐藏窗
口等实用功能。
定时关机功能支持待机和休眠状态,可以设置固定时间关机和倒计时关机。
其功能设置如下:
1.可以设定具体时间,比如2021年3月15日23:59:59,让电脑自动执行关机等任务。
2.可以设置每天某个具体时间,比如每天23:00关闭计算机等任务。
3.可以设定几小时几分钟后,电脑自动执行关机等任务,比如1小时30分钟。
4.可以设定开机几小时几分钟后,电脑自动执行关机等任务,比如开机后2小时30
分钟。
5.可以给上述的任务加个30秒倒计时提示。
6.同样可以设置软件自启动,对于某些程序、任务,可以设置计划任务在某段时间自
动执行。
1. 设置每天23:59:59关闭计算机
2 .设置鼠标无人操作1小时20分钟后断开网络:
感谢您的阅读,祝您生活愉快。
简易APP实现Android定时关机
实现定时关机的方法之一(网上还有多种方法,目前用的这个是自己实践的)
主要是使用AlarmManager,思路就是:利用AlarmManager在特定的时刻
发送一个广播,在程序中写一个广播接收器用于接收这个广播,一旦接收到该广播,则执行关机的命令。
一句话就介绍完了,但是个人觉得这个知识点还是蛮有用的,下面详解这次用到的知识点及遇到的问题
关于AlarmManager的官网文档介绍
Note: The Alarm Manager is intended for cases where you want to
have your application code run at a specific time, even if your
application is not currently running. For normal timing operations
(ticks, timeouts, etc) it is easier and much more efficient to use
Handler.
上面说的是:当你想要在某个特定的时刻运行你的程序代码,可以使用AlarmManager,即使当前该程序并没有运行亦可。
对于平时那些用到定时的
操作(如ticks, timeouts),AlarmManager比Handler使用起来各更简单、有效
该APP的截图
Screenshot_20160811-230833.png
关于界面就不介绍了。
主要实现大体是按照上面的思路来的
1.设置AlarmManager所需的参数
private void setAlarm() { Intent intent = new Intent(getApplicationContext(), AlarmBroadcastReciver.class); pendingIntent = PendingIntent.getBroadcast(getApplicationContext(), 0, intent, PendingIntent.FLAG_UPDATE_CURRENT); alarmManager = (AlarmManager) getSystemService(ALARM_SERVICE); }
这里要说一下关于AlarmManager的几个重要方法!
这篇文章介绍的比较详细,感谢作者
set(int type, long triggerAtMillis, PendingIntent operation)
这个方法是本次使用到的方法之一,用于在特定时间传递一个广播,但是只能单次提醒,它的参数说明:
第一个参数是指AlarmManager的类型,有5个值可以选择:AlarmManager.ELAPSED_REALTIME闹钟在手机睡眠状态下不可用,该状态下闹钟使用相对时间(相对于系统启动开始); AlarmManager.ELAPSED_REALTIME_WAKEUP 闹钟在睡眠状态下会唤醒系统并执行提示功能,该状态下闹钟也使用相对时间;AlarmManager.RTC闹钟在睡眠状态下不可用,该状态下闹钟使用绝对时间(即当前系统时间);AlarmManager.RTC_WAKEUP表示闹钟在睡眠状态下会唤醒系统并执行提示功能,该状态下闹钟使用绝对时间; AlarmManager.POWER_OFF_WAKEUP
表示闹钟在手机关机状态下也能正常进行提示
第二个参数是指开启提示的时间
第三个参数是绑定了需要执行的操作,比如这次采用的发送广播,也可以弹出提示框等等
setRepeating(int type, long triggerAtMillis, long intervalMillis, PendingIntent operation)
这个方法和上一个类似,就是多了一个参数long intervalMillis,这个方法是可以重复执行提醒功能,而多出的这个参数就是重复提醒之间的时间间隔
cancel(PendingIntent operation)
这个方法从名字就可以看出来,是用来取消提醒的
2.设置广播接收器
注意1中的这一行代码Intent intent = new Intent(getApplicationContext(),
AlarmBroadcastReciver.class);这行代码就是利用Intent直接指定广播接收器,这样就不需要在清单文件中注册具体的广播标签,该广播接收器接受到广播时,会直接执行关机操作
publicvoid onReceive(Context context, Intent intent) { Toast.makeText(context,"关机啦", Toast.LENGTH_SHORT).show(); try{ Process process = Runtime.getRunti me().exec("su"); DataOutputStream out= new DataOutputStream( process.getOutputStream()); out.writeBytes("reboot -p\n"); out. writeBytes("exit\n"); out.flush(); } catch(IOException e) { e.printS tackTrace(); }
3.设置按钮监听器,根据点击的按钮开启循环提醒还是单次提醒,同时显示出当前设定的数据
4.重写onStop()方法,在方法中使用ShardPreference用于保存设定的数据,在进入程序时读取保存的数据,并显示出来,以方便知道之前设定的数据
遇到的问题:本来是覆写的onDestroy()方法,想的是在程序销毁时保存数据,结果总是没保存下来,之前也用过ShardPreference在onDestroy()方法中保
存数据,是可以的。
最后经过多次测试,又看了一下Activity的生命周期图才发现问题所在,下面结合官网给出的生命图来说明
activity_lifecycle.png
当程序进入到后台时就由运行态转换到onPause()态,当不再对用户可见时,就会进入到onStop()态,当程序被finifsh掉后,会进入onDestroy()进而被消
灭,这种正常退出的情况下在onDestroy()中保存数据当然是可以的。
但是考虑到图中的另一条路线,由onStop()直接转到死亡状态,这种情况就属于非正常情况退出了,比如正在运行时突然被什么清理软件给彻底杀掉了,那么这个时候是不会到onDestroy()这一步,所以此时在这个方法中保存数据就会失败,因此面对这种情况可以考虑覆写onStop()方法进行保存数据,然后在onCreate()中即活动刚创建时获取即可。