I came across this code snippet to check for internet access by opening a Socket-
class InternetCheck extends AsyncTask<Void,Void,Boolean> {
private Consumer mConsumer;
public interface Consumer { void accept(Boolean internet); }
public InternetCheck(Consumer consumer) { mConsumer = consumer; execute(); }
@Override protected Boolean doInBackground(Void... voids) { try {
Socket sock = new Socket();
sock.connect(new InetSocketAddress("8.8.8.8", 53), 1500);
sock.close();
return true;
} catch (IOException e) { return false; } }
@Override protected void onPostExecute(Boolean internet) { mConsumer.accept(internet); }
}
But how do I actually use this AsyncTask?
In my MainActivity
, I call new InternetCheck().execute();
but how to pass the Consumer
param to it?
PS - I just started with Android so sorry for being a noob here.