我是在PhoneWindowManage 的init()里操作的
new Thread(new Runnable() {
@Override
public void run() {
int num = 0;
try{
num = Settings.System.getInt(context.getContentResolver(),"reboot_count");
}catch(Exception e){
Log.d("wangruiq","start reboot num fuzhi 0");
//没有这个值时,访问就会抛异常,所以给个默认值
Settings.System.putInt(context.getContentResolver(),"reboot_count",0);
e.printStackTrace();
}
try {
Thread.sleep(40000);
Log.d("wangruiq","num="+num);
PowerManager powerManager = (PowerManager) context.getSystemService(Context.POWER_SERVICE);
if (num<=1000){
Log.d("wangruiq","start reboot");
Settings.System.putInt(context.getContentResolver(),"reboot_count",++num);
powerManager.reboot("remote reboot");
Log.d("wangruiq","start reboot ok");
}
} catch (Exception e) {
Log.d("wangruiq","start reboot Exception");
e.printStackTrace();
}
}
}).start();