设是ROOT过的或者设备商提供重启的API
public class DeviceAutoRebootService extends Service {
private ScheduledExecutorService threadPool = null;
private int betweenTime = 59;//间隔59秒执行一次
private int delayTime = 2;//线程池开启5庙后执行
private String time = "14:50";//重启时间一
SimpleDateFormat sdf = new SimpleDateFormat("HH:mm", Locale.CHINA);
String[] rebootArray = {"su", "-c", "reboot"};//执行重启的命令
String dateStr = "";//获取的时间
@Nullable
@Override
public IBinder onBind(Intent intent) {
return null;
}
@Override
public void onCreate() {
super.onCreate();
threadPool = Executors.newScheduledThreadPool(3);
executeShutDown();
}
public void executeShutDown() {
threadPool.scheduleAtFixedRate(new Runnable() {
@Override
public void run() {
dateStr = sdf.format(new Date());
// root机子
// if (dateStr.equals(time) ) {
// try {
// Runtime.getRuntime().exec(rebootArray);
// } catch (IOException io) {
//
// }
// }
if (dateStr.equals(time)) {
App.getInstance().setHwitRebootSystem();
}
}
}, delayTime, betweenTime, TimeUnit.SECONDS);
}
@Override
public void onDestroy() {
threadPool.shutdown();
threadPool = null ;
dateStr = null ;
super.onDestroy();
}
}
本文介绍了一个基于Android平台的定时重启服务实现方案。通过ScheduledExecutorService安排任务,在指定时间执行重启命令,适用于已ROOT的设备或提供了重启API的设备商。
247





