第一个小项目练练手吧,,大多数内容都是参考别人的。

1.设置关机时间。设置时间用的是TimePicker ,

tp_time1 = (TimePicker) findViewById(R.id.tp_time1);
      tp_time1.setIs24HourView(true);

Button btn_settime1=(Button) findViewById(R.id.btn_settime1);

btn_settime1.setOnClickListener(new OnClickListener() {

@Override
public void onClick(View v) {
// TODO Auto-generated method stub
Integer hour1 = tp_time1.getCurrentHour();
Integer minute1 = tp_time1.getCurrentMinute();

String hourOff = hour1.toString();
String minuteOff = minute1.toString();

Intent intent = new Intent();
intent.putExtra("hourOff", hourOff);
intent.putExtra("minuteOff", minuteOff);

setResult(1, intent);

}

2.启动一个服务来获取当前手机系统的世界,并将设置的时间参数传给服务,来判断当前时间是否与设置的时间相同

protected void onActivityResult(int requestCode, int resultCode, Intent data) {
if (resultCode == 1) {
hourOff1 = data.getStringExtra("hourOff");
minuteOff1 = data.getStringExtra("minuteOff");
hourOn1 = data.getStringExtra("hourOn");
minuteOn1 = data.getStringExtra("minuteOn");
if (hourOff1 != null && minuteOff1 != null) {
tv_time1.setText(hourOff1 + ":" + minuteOff1 + "-" + hourOn1
+ ":" + minuteOn1);
}
}

}

if (hourOff1 != null && minuteOff1 != null) {
int hour1 = Integer.valueOf(hourOff1);
int minute1 = Integer.valueOf(minuteOff1);
long setTimeMillis1 = timeToMillis(hour1, minute1);
serviceIntent1.putExtra("settime1", setTimeMillis1);
if (sw_start1.isChecked()) {
startService(serviceIntent1);
}else{
stopService(serviceIntent1);
}
}else{
serviceIntent1.putExtra("settime1", 0);
if(sw_start1.isChecked())

startService(serviceIntent1);
}
}

其中,sw_start1是开关控件,timeToMillis()方法是将获取到的时间转换成毫秒

3.在服务中来判断当前时间是否为关机时间

public void onStart(Intent intent, int startId) {
getLastTimeSet();
setTimeMillis1 = intent.getLongExtra("settime1", getLastTimeSet1());
new Thread() {
public void run() {
//while (true) {
long currentTimeMillis = getCurrentTimeMillis();
if (currentTimeMillis == setTimeMillis1) {
powerOff();
}
//}
};
}.start();
super.onStart(intent, startId);
}

获取当前时间的方法:

public long getCurrentTimeMillis() {
Calendar c = Calendar.getInstance();
int hour = c.get(Calendar.HOUR_OF_DAY);
int minute = c.get(Calendar.MINUTE);
return timeToMillis(hour, minute);
}

关机的方法

public void powerOff() {
try {
// /需要root权限后才能用这个方法
System.out.println("执行关机 ");
Process pro = Runtime.getRuntime().exec(
new String[] { "su", "-c", "reboot -p" });
pro.waitFor();
} catch (Exception e) {
// TODO Auto-generated catch block
System.out.println("执行关机失败");
e.printStackTrace();
}
}

代码量交少,主要的关机功能是参考的网上的,但是需要手机root后才能用。。。一直想找不用root的关机方法,但是没找到,不知道有没有。不足之处还请指教

Android定时关机相关推荐

  1. android 定时关机,定时重启

    Android定时关机,定时重启.这个需求主要分为两部分1.定时2.关机/重启.定时直接使用系统的定时服务(AlarmManager):关机/重启虽然系统提供了相应的api,但是该api只对系统级的应 ...

  2. Android:android定时开关机

    android定时关机 (记住一定要在源码下编译生成apk,也就是放在源码的package/app下编译!!!) 先看一下简单的图形界面吧,比较简单的实现定时关机!!!(我的上传资源中有整个工程:注: ...

  3. android 9.0系统定时关机的实现

    1.简述 由于9.0版本对系统安全性要求越来越严格,所以开关机的api对于应用层都不能调用了,要实现定时关机必须是系统应用 要在Androidmanifest.xml 中添加 android:shar ...

  4. android定时管家,安全管家定时短信 让温馨祝福及时送到

    2012来了,浓烈的新年气氛围绕身边,已经忘记了世界末日的预言.在这个重要的节日,你一定有些特别的祝福语送给TA.使用安全管家定时短信功能, 设置特别祝福语,在特定的时间传递给特别的TA.感受安全管家 ...

  5. php能做定时关机吗,window_win10怎么定时关机?Win10系统定时关机命令使用方法详解,对于电脑用户来说,定时关机 - phpStudy...

    win10怎么定时关机?Win10系统定时关机命令使用方法详解 对于电脑用户来说,定时关机有时候经常会用到,比如夜间下载东西或者下载一些大文件,而又没有时间一直守着电脑,这时候设置电脑定时关机就很实用 ...

  6. win定时关机_如何将电脑设置为定时关机?

    本期分享教大家如何将电脑设置为定时关机,至于为什么要设置定时关机,这就像设置闹钟一样,不同的人有不同的用途,不光是叫醒那么简单哦! 定时关机设置方法 方法一:用命令设置 1.鼠标右击[开始菜单]选择[ ...

  7. java定时关机源码_java实现电脑定时关机的方法

    本文实例讲述了java如何注册成windows服务程序及一个简单的java定时关机程序代码,分享给大家供大家参考.具体方法如下: 一.问题: 最近想找个软件来控制电脑的关机时间,在网上找了几个,都是可 ...

  8. Windows XP下如何设置电脑定时关机

     我们在使用电脑经时,有时候会遇到一些紧急情况,需要暂时离开电脑,可是我们的电脑正在执行任务.比如下载资料.一些视频文件格式转换等等!我们知道电脑关闭还需要多长时间,也就是这些任务执行完毕还需要多长的 ...

  9. 如何在BIOS里设置定时关机?

    如何在BIOS里设置定时关机? 通过CMOS设置实现定时开机的设置过程如下:首先进入"CMOS SETUP"程序(大多数主板是在计算机启动时按DEL键进入):然后将光条移到&quo ...

最新文章

  1. Bitcoin Unlimited发布BCH新版本,石墨烯技术迎来进展
  2. 快速上手的Glide4.x教程
  3. 146. Leetcode 51. N 皇后 (回溯算法-棋盘问题)
  4. cmake 指定编译器_我们需要懂得CMake文件
  5. (纪录片)电的故事 Shock Awe The Story of Electricity
  6. Spring Boot 学习系列(07)—properties文件读取
  7. linux vi 内存,Vi Linux内存 之 Slub分配器(四)
  8. 如何生成静态页面的五种方案
  9. Sql 四大排名函数(ROW_NUMBER、RANK、DENSE_RANK、NTILE)简介
  10. ubuntu 下 4412烧写SuperBoot
  11. 关于SAS学习的记录
  12. python毕业设计题目推荐飞机票销售订票系统
  13. iperf3带宽测试工具
  14. 厉害了,Pandas表格还能五彩斑斓的展示数据,究竟是怎么做到的呢?
  15. 计算机未来的发展趋势和现状,计算机发展现状跟未来发展趋势.docx
  16. 父爱动画代码python_情人节锦囊:简单的python表白程序(动画效果)
  17. java计算机毕业设计在线毕设选题系统源码+系统+mysql数据库+lw文档
  18. 阿里实习 90 天:从实习生的视角谈谈个人成长
  19. mysql 查询数据库ip_如何查看连接MYSQL数据库的IP信息
  20. 2017年最受欢迎的十篇神秘的程序员漫画

热门文章

  1. 身为程序员,如何回绝下班后的工作消息?
  2. 荣耀猎人游戏本V700具备哪些方面的优势特点?
  3. Elasticsearch跨集群复制(CCR)介绍
  4. 如何计算三维空间中点到平面的投影点坐标
  5. 迪士尼影视动画票房创新高
  6. MYSQL免登录改密码
  7. Matplotlib作图中坐标轴字体的加粗斜体格式
  8. PWN入门系列教程~(1)
  9. JS~jwPlayer为js预留的回调方法大总结
  10. 利用MT Photos生成的重复文件列表,删除重复文件