다음 코드를 사용하고 있으며 인터넷 연결이되어 있는지 프로그래밍 방식으로 확인하는 중입니다.
NetworkOnMainThreadException이 발생하고 AsyncTask를 사용하는 것이 좋습니다.
hasActiveInternetConnection(Context context)
에서 네트워크 작업을 수행하고 네트워크에 연결되어 있으면 true를 반환하고 그렇지 않으면 false를 반환하고 싶습니다.
어떻게 AsyncTask를 사용하여이 작업을 수행합니까?AsyncTask를 사용하여 인터넷 연결을 확인하는 방법
public class NetworkUtil extends AsyncTask<String, Void, String>{
Context context;
public NetworkUtil(Context context){
this.context = context;
}
private ProgressDialog dialog;
@Override
protected void onPreExecute() {
super.onPreExecute();
}
@Override
protected String doInBackground(String... arg0) {
if (new CheckNetwork(context).isNetworkAvailable())
{
try {
HttpURLConnection urlc = (HttpURLConnection) (new URL("http://www.google.com").openConnection());
urlc.setRequestProperty("User-Agent", "Test");
urlc.setRequestProperty("Connection", "close");
urlc.setConnectTimeout(1500);
urlc.connect();
boolean url= (urlc.getResponseCode() == 200);
String str = String.valueOf(url);
return str;
} catch (IOException e) {
}
}
// your get/post related code..like HttpPost = new HttpPost(url);
else {
Toast.makeText(context, "no internet!", Toast.LENGTH_SHORT).show();
}
return null;
}
@Override
protected void onPostExecute(String result) {
super.onPostExecute(result);
if (dialog.isShowing()) {
dialog.dismiss();
}
}
}
당신이 연결이 아닌지 확인 할을이 자신의 코드 직원을 할? 직원에게 인터넷 연결이 될 때까지 기다리시겠습니까? –
@ahmed 인터넷 연결을 확인하고 연결이 존재하면 true를 반환하고 싶습니다! – user3458008