首页 > 编程知识 正文

小米手机定时重启,电脑怎么定时关机重启

时间:2023-05-04 11:48:01 阅读:210612 作者:2255

Android定时关机,定时重启。这个需求主要分为两部分1.定时2.关机/重启。定时直接使用系统的定时服务(AlarmManager);关机/重启虽然系统提供了相应的api,但是该api只对系统级的应用开放,普通的应用无法使用。使用此api需要把app打包成系统应用,因此开关机功能只能在一些定制的系统中使用。

打包成系统应用方式:

1.系统对应的公钥文件platform.pk8和私钥文件platform.x509.pem以及签名工具signapk.jar;

2.将需要打包的apk和第一步里面提到的三个文件放到统一个文件夹下;

3.打开cmd进入第二步里的文件夹下执行命令:java -jar signapk.jar platform.x509.pem platform.pk8 app-release.apk new.apk

如果满足上面的条件就可以轻松实现(定时)关机重启的功能了

关机:

Intent intent = new Intent("android.intent.action.ACTION_REQUEST_SHUTDOWN");//是否显示关机提示dialog,true显示false不显示直接关机intent.putExtra("android.intent.extra.KEY_CONFIRM", true);intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);startActivity(intent);

定时关机:

Intent intent = new Intent("android.intent.action.ACTION_REQUEST_SHUTDOWN");//是否显示关机提示dialog,true显示false不显示直接关机intent.putExtra("android.intent.extra.KEY_CONFIRM", true);intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);//获取闹钟的id,给定时设置一个随机id,这样可以设置多个定时器,否则会被覆盖掉int alarmId = getIntRandom();long intervalMillis = 24 * 3600 * 1000;PendingIntent pi = PendingIntent.getActivity(MainActivity.this, alarmId, intent, 0);AlarmManager manager = (AlarmManager) getSystemService(ALARM_SERVICE);//设置重复定时,intervalMillis重复定时的间隔时间。根据自己的需求来设置定时manager.setRepeating(AlarmManager.RTC_WAKEUP, time, intervalMillis, pi);//设置一次定时,根据自己的需求来设置定时//manager.set(AlarmManager.RTC_WAKEUP, time, pi);

重启:

Intent intent=new Intent(Intent.ACTION_REBOOT);intent.putExtra("nowait", 1);intent.putExtra("interval", 1);intent.putExtra("window", 0);sendBroadcast(intent);

定时重启:

Intent intent = new Intent(Intent.ACTION_REBOOT);intent.putExtra("nowait", 1);intent.putExtra("interval", 1);intent.putExtra("window", 0);//获取闹钟的id,给定时设置一个随机id,这样可以设置多个定时器,否则会被覆盖掉int alarmId = getIntRandom();long intervalMillis = 24 * 3600 * 1000;PendingIntent pi = PendingIntent.getActivity(MainActivity.this, alarmId, intent, 0);AlarmManager manager = (AlarmManager) getSystemService(ALARM_SERVICE);//设置重复定时,intervalMillis重复定时的间隔时间。根据自己的需求来设置定时manager.setRepeating(AlarmManager.RTC_WAKEUP, time, intervalMillis, pi);//设置一次定时,根据自己的需求来设置定时//manager.set(AlarmManager.RTC_WAKEUP, time, pi);//manager.setExact(AlarmManager.RTC_WAKEUP, time, pi);//set()和setExact()两种方法都是设置定时的,区别在于set()方法定时会有误差而setExact()是精确定时

 

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。