I want to schedule a post to my API that sends logs every couple hours while ensuring there is an internet connection, so for example if I reach the 2 hours and I dont have internet at that moment, I want to wait until there is, send the request and reset the timer to the current sync hour.
I have seen this related issue but doesnt take in consideration the internet connectivity part.
I extended AppCompatActivity to register a BroadcastReceiver in every activity as so:
public class BaseActivity extends AppCompatActivity {
InternetReceiver internetReceiver = new InternetReceiver();
@Override
protected void onCreate(@Nullable Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
IntentFilter intentFilter = new IntentFilter(ConnectivityManager.CONNECTIVITY_ACTION);
registerReceiver(internetReceiver, intentFilter);
}
@Override
protected void onDestroy() {
super.onDestroy();
unregisterReceiver(internetReceiver);
}
And my InternetReceiver looks like so:
public class InternetReceiver extends BroadcastReceiver {
@Override
public void onReceive(Context context, Intent intent) {
if (ConnectivityManager.CONNECTIVITY_ACTION.equals(intent.getAction())) {
boolean noConnection = intent.getBooleanExtra(ConnectivityManager.EXTRA_NO_CONNECTIVITY, false);
if (!noConnection) {
// send some data...
}
}
}
}
How can I achieve this?