【发布时间】:2018-02-11 16:06:38
【问题描述】:
当用户再次访问互联网时,我只想运行一次代码。
我的第一个想法是在“Android.net.conn.CONNECTIVITY_CHANGE”上使用 BroadcastReceiver,并在代码运行后立即取消注册。但我意识到,当用户停用互联网连接时,这也会运行代码。
有没有更好的方法?或者有没有办法检查当前意图是停用还是激活互联网连接?
这是目前的样子:
final BroadcastReceiver OnConnecion = new BroadcastReceiver() {
@Override
public void onReceive(Context context, Intent intent) {
if(isOnline()){
vplan1 = new Vplan("vplan1", CheckService.this);
vplan2 = new Vplan("vplan2", CheckService.this);
Calendar heute = Calendar.getInstance();
Calendar date1 = vplan1.getCalendar();
Calendar date2 = vplan2.getCalendar();
if ((!(vergleiche(heute, date1) < 0)) & (!(vergleiche(heute, date2) < 0))) {
getData task = new getData();
task.execute();
unregisterReceiver(this);
}
}
}
};
registerReceiver(OnConnecion, new IntentFilter("android.net.conn.CONNECTIVITY_CHANGE"));
谢谢
【问题讨论】:
-
你需要检查 NetworkInfo 认为 ConnectivityManager 因为 CONNECTIVITY_CHANGE 只通知某些事情发生了变化。
标签: android android-intent broadcastreceiver