我需要在安卓应用中使用timertask设置定时器,每分钟检查wifi状态。我需要检查wifi电台是否打开或关闭。如果wifi电台关闭了,我需要打开它,当wifi电台打开时,定时器按照预定时间正常工作。但是,当wifi电台在开始时关闭或在应用程序运行时关闭时,预定任务无法按计划工作,似乎更快地工作。我该怎么做才能解决这个问题?
TimerTask timerTask = new TimerTask() {
@Override
public void run() {
try {
ConnectivityManager connMgr = (ConnectivityManager) c.getSystemService(Context.CONNECTIVITY_SERVICE);
NetworkInfo networkInfo = connMgr.getNetworkInfo(ConnectivityManager.TYPE_WIFI);
if(!networkInfo.isAvailable()){
mainWifi.setWifiEnabled(true);
}
else{
// Wifi is available
}
if(networkInfo.isConnected()){
// Connected to a WiFi network.
}
}
catch(Exception e){
}
}
};
timerT.scheduleAtFixedRate(timerTask, 0, 60000);
schedule
而不是scheduleAtFixedRate
,运行应该按照更规律的时间表执行,而不受延迟的影响。 - Ted Hoppschedule()
而不是scheduleAtFixedRate()
,我看不出它怎么可能会更频繁。 (请注意,第二个任务将在第一个任务_开始_后一分钟启动,而不是在第一个任务完成后一分钟启动,因此不均匀的执行时间可能会使其_看起来_运行得更快,但这不应该是稳态条件。)你说它“似乎”更快了;你是如何确定它运行得有多快的? - Ted Hopp