如何每6小时执行一次任务,或者当网络可用于Android时执行一次任务?
嗯,我想每隔6小时左右检查一个站点的版本(这部分我知道怎么做) 因此,我正在考虑为此提供如何每6小时执行一次任务,或者当网络可用于Android时执行一次任务?,android,service,android-activity,Android,Service,Android Activity,嗯,我想每隔6小时左右检查一个站点的版本(这部分我知道怎么做) 因此,我正在考虑为此提供服务,并使用AlarmManager 因为我需要互联网来检查网站的版本,所以我需要一些东西来查看互联网是否打开或何时打开。过了一段时间,我会 所以我的问题(是的,不仅仅是一个!)是: 即使显示器进入休眠状态,AlarmManager是否仍能工作?当设备唤醒时,它知道经过了多少时间,如果超过6小时,它会执行任务 如何检查互联网何时可用 如何知道互联网何时开启?(某种形式的广播?) 这是一个好的解决方案吗 报警
服务
,并使用AlarmManager
因为我需要互联网来检查网站的版本,所以我需要一些东西来查看互联网是否打开或何时打开。过了一段时间,我会
所以我的问题(是的,不仅仅是一个!)是:
AlarmManager
是否仍能工作?当设备唤醒时,它知道经过了多少时间,如果超过6小时,它会执行任务广播
?)报警管理器:
public boolean isNetworkAvailable() {
Context context = getApplicationContext();
ConnectivityManager connectivity = (ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE);
if (connectivity == null) {
boitealerte(this.getString(R.string.alert),"getSystemService rend null");
} else {
NetworkInfo[] info = connectivity.getAllNetworkInfo();
if (info != null) {
for (int i = 0; i < info.length; i++) {
if (info[i].getState() == NetworkInfo.State.CONNECTED) {
return true;
}
}
}
}
return false;
}
报警管理器与显示状态无关,因此即使屏幕关闭,它也可以工作
网络可用性片段:
public boolean isNetworkAvailable() {
Context context = getApplicationContext();
ConnectivityManager connectivity = (ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE);
if (connectivity == null) {
boitealerte(this.getString(R.string.alert),"getSystemService rend null");
} else {
NetworkInfo[] info = connectivity.getAllNetworkInfo();
if (info != null) {
for (int i = 0; i < info.length; i++) {
if (info[i].getState() == NetworkInfo.State.CONNECTED) {
return true;
}
}
}
}
return false;
}
在此接收器中,给出请求网络是否可用的逻辑。报警管理器:
public boolean isNetworkAvailable() {
Context context = getApplicationContext();
ConnectivityManager connectivity = (ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE);
if (connectivity == null) {
boitealerte(this.getString(R.string.alert),"getSystemService rend null");
} else {
NetworkInfo[] info = connectivity.getAllNetworkInfo();
if (info != null) {
for (int i = 0; i < info.length; i++) {
if (info[i].getState() == NetworkInfo.State.CONNECTED) {
return true;
}
}
}
}
return false;
}
报警管理器与显示状态无关,因此即使屏幕关闭,它也可以工作
网络可用性片段:
public boolean isNetworkAvailable() {
Context context = getApplicationContext();
ConnectivityManager connectivity = (ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE);
if (connectivity == null) {
boitealerte(this.getString(R.string.alert),"getSystemService rend null");
} else {
NetworkInfo[] info = connectivity.getAllNetworkInfo();
if (info != null) {
for (int i = 0; i < info.length; i++) {
if (info[i].getState() == NetworkInfo.State.CONNECTED) {
return true;
}
}
}
}
return false;
}
在此接收器中,给出请求网络是否可用的逻辑。关于报警管理器。下面是一个可能的代码:
AlarmManager alarmManager = (AlarmManager) getSystemService(ALARM_SERVICE);
alarmManager.setRepeating(AlarmManager.RTC, System.currentTimeMillis() + 10000, 6*60*60*1000, pendingIntent);
第一个参数影响设备的行为:
RTC-警报不会唤醒设备;如果在设备处于睡眠状态时关闭,则在设备下次唤醒之前,不会发送该设备
RTC_WAKEUP-在设备关闭时唤醒设备关于报警管理器。下面是一个可能的代码:
AlarmManager alarmManager = (AlarmManager) getSystemService(ALARM_SERVICE);
alarmManager.setRepeating(AlarmManager.RTC, System.currentTimeMillis() + 10000, 6*60*60*1000, pendingIntent);
第一个参数影响设备的行为:
RTC-警报不会唤醒设备;如果在设备处于睡眠状态时关闭,则在设备下次唤醒之前,不会发送该设备
RTC_WAKEUP-在设备关闭时唤醒设备这是一个开始,其他问题如何?您回答了2和3,1和4如何POK,Alarm Manager与显示状态无关,所以即使屏幕关闭,它也可以工作。我确实回答了你的第四个问题作为可能的解决方案…不是吗?这是一个开始,其他问题呢?你回答了2和3,1和4呢POK,Alarm Manager与显示状态无关,所以即使屏幕关闭,它也可以工作。我确实回答了你的第四个问题作为可能的解决方案…不是吗??