检查设备上次连接到互联网的时间
Check when a device last time connected to the internet
我正在开发一个 android 应用程序,我想检查该设备上次连接到互联网是否已超过 10 天。我已经注册了一个网络更改接收器,以便获得连接更改,但我不知道如何检查自上次以来已经过了多少天。这是我的网络更改代码
IntentFilter filter = new IntentFilter(ConnectivityManager.CONNECTIVITY_ACTION);
receiver = new NetwaorkChangeReceiver();
this.registerReceiver(receiver, filter);
public class NetworkChangeReceiver extends BroadcastReceiver {
private static boolean deviceConnected;
private static final String LOG_TAG = NetworkChangeReceiver.class.getSimpleName();
@Override
public void onReceive(final Context context, final Intent intent)
{
final ConnectivityManager connMgr = (ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE);
final android.net.NetworkInfo wifi = connMgr.getNetworkInfo(ConnectivityManager.TYPE_WIFI);
final android.net.NetworkInfo mobile = connMgr.getNetworkInfo(ConnectivityManager.TYPE_MOBILE);
if (wifi.isAvailable() || mobile.isAvailable())
{
deviceConnected=true;
}else{
deviceConnected=false;
}
}
}
设置闹钟。 Android AlarmManager
由系统处理。创建一个 Service
并使用服务意图创建一个 PendingIntent
。用那个 PendingIntent
来触发你的闹钟。
private void setAlarmForTenDays(Context context) {
PendingIntent pendingIntentAutoBackupService = PendingIntent.getService(context,0,new Intent(context, MyService.class),0);
AlarmManager manager = (AlarmManager) context.getSystemService(context.ALARM_SERVICE);
//long interval = 1000*60*60*24*10;
long interval = AlarmManager.INTERVAL_DAY*10;
manager.setInexactRepeating(AlarmManager.RTC_WAKEUP, System.currentTimeMillis(), interval, pendingIntentAutoBackupService);
Log.d("Alarm", " Alarm created");
}
当您的警报管理器被触发时,您的 Service
将启动。你可以用5分钟这样的拍摄时间限制来检查。
查看 Scheduling Repeating Alarms 以了解更多信息。
您可以为您的应用添加上次互联网连接的时间戳,并检查它是否已超过 10 天。
mSharedPrefs = context.getSharedPreferences("preferences_filename", Context.MODE_PRIVATE);
mSharedPrefs .putLong("timestamp", System.currentTimeMillis()).apply();
并检查使用:
TEN_DAYS = 10 * 24 * 60 * 60 * 1000;
System.currentTimeMillis() - sharedPrefsValue > TEN_DAYS;
我正在开发一个 android 应用程序,我想检查该设备上次连接到互联网是否已超过 10 天。我已经注册了一个网络更改接收器,以便获得连接更改,但我不知道如何检查自上次以来已经过了多少天。这是我的网络更改代码
IntentFilter filter = new IntentFilter(ConnectivityManager.CONNECTIVITY_ACTION);
receiver = new NetwaorkChangeReceiver();
this.registerReceiver(receiver, filter);
public class NetworkChangeReceiver extends BroadcastReceiver {
private static boolean deviceConnected;
private static final String LOG_TAG = NetworkChangeReceiver.class.getSimpleName();
@Override
public void onReceive(final Context context, final Intent intent)
{
final ConnectivityManager connMgr = (ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE);
final android.net.NetworkInfo wifi = connMgr.getNetworkInfo(ConnectivityManager.TYPE_WIFI);
final android.net.NetworkInfo mobile = connMgr.getNetworkInfo(ConnectivityManager.TYPE_MOBILE);
if (wifi.isAvailable() || mobile.isAvailable())
{
deviceConnected=true;
}else{
deviceConnected=false;
}
}
}
设置闹钟。 Android AlarmManager
由系统处理。创建一个 Service
并使用服务意图创建一个 PendingIntent
。用那个 PendingIntent
来触发你的闹钟。
private void setAlarmForTenDays(Context context) {
PendingIntent pendingIntentAutoBackupService = PendingIntent.getService(context,0,new Intent(context, MyService.class),0);
AlarmManager manager = (AlarmManager) context.getSystemService(context.ALARM_SERVICE);
//long interval = 1000*60*60*24*10;
long interval = AlarmManager.INTERVAL_DAY*10;
manager.setInexactRepeating(AlarmManager.RTC_WAKEUP, System.currentTimeMillis(), interval, pendingIntentAutoBackupService);
Log.d("Alarm", " Alarm created");
}
当您的警报管理器被触发时,您的 Service
将启动。你可以用5分钟这样的拍摄时间限制来检查。
查看 Scheduling Repeating Alarms 以了解更多信息。
您可以为您的应用添加上次互联网连接的时间戳,并检查它是否已超过 10 天。
mSharedPrefs = context.getSharedPreferences("preferences_filename", Context.MODE_PRIVATE);
mSharedPrefs .putLong("timestamp", System.currentTimeMillis()).apply();
并检查使用:
TEN_DAYS = 10 * 24 * 60 * 60 * 1000;
System.currentTimeMillis() - sharedPrefsValue > TEN_DAYS;