alighasemi99
جمعه 24 اردیبهشت 1395, 17:57 عصر
سلام
یه قطعه کدی برای چک کردن اینترنت کانکشن از تو یه وبسایتی گیر آوردم نوشتم که فقط توی اکتیویتی کار میکنه و برای هر قسمت برنامم باید بیخودی این کد رو تکرار کنم
چحوری میتونم اونو بدون اینکه ارور بده توی یه کلاس وارد کنم و همه جای برنامم با فراخوانی ازش استفاده کنم ؟
این کدو الان از اکتیویتی میبرم توی کلاس ارور کانستراکتور میده ولی هرکاری میکنم مشکلش حل نمیشه
لطفا راهنماییم کنین
public void ShowAlertDialog() {
AlertDialog.Builder alertDialog = new AlertDialog.Builder(LearnActivity.this);
alertDialog.setTitle(R.string.title);
alertDialog.setMessage(R.string.message);
alertDialog.setIcon(R.drawable.ic_launcher);
// Setting Positive "Yes" Button
alertDialog.setPositiveButton(R.string.yes,
new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
dialog.cancel();
new NetCheck().execute();
}
});
// Setting Negative "NO" Button
alertDialog.setNegativeButton(R.string.no,
new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
// Write your code here to invoke NO event
dialog.cancel();
}
});
// Showing Alert Message
alertDialog.show();
}
public class NetCheck extends AsyncTask<String, String, Boolean>
{
private ProgressDialog nDialog;
@Override
protected void onPreExecute() {
super.onPreExecute();
nDialog = new ProgressDialog(LearnActivity.this);
nDialog.setTitle("Checking Network");
nDialog.setMessage("Loading..");
nDialog.setIndeterminate(false);
nDialog.setCancelable(true);
nDialog.show();
}
@Override
protected Boolean doInBackground(String... args) {
ConnectivityManager cm = (ConnectivityManager) getSystemService(Context.CONNECTIVITY_SERVICE);
NetworkInfo netInfo = cm.getActiveNetworkInfo();
if (netInfo != null && netInfo.isConnected()) {
try {
URL url = new URL("http://www.google.com");
HttpURLConnection urlc = (HttpURLConnection) url.openConnection();
urlc.setConnectTimeout(3000);
urlc.connect();
if (urlc.getResponseCode() == 200) {
return true;
}
}
catch (MalformedURLException e1) {
e1.printStackTrace();
}
catch (IOException e) {
e.printStackTrace();
}
}
return false;
}
@Override
protected void onPostExecute(Boolean th) {
if (th == true) {
nDialog.dismiss();
Toast.makeText(getApplicationContext(), "Your device is connected to internet !", Toast.LENGTH_LONG).show();
// new GetData().execute();
}
else {
nDialog.dismiss();
ShowAlertDialog();
}
}
}
یه قطعه کدی برای چک کردن اینترنت کانکشن از تو یه وبسایتی گیر آوردم نوشتم که فقط توی اکتیویتی کار میکنه و برای هر قسمت برنامم باید بیخودی این کد رو تکرار کنم
چحوری میتونم اونو بدون اینکه ارور بده توی یه کلاس وارد کنم و همه جای برنامم با فراخوانی ازش استفاده کنم ؟
این کدو الان از اکتیویتی میبرم توی کلاس ارور کانستراکتور میده ولی هرکاری میکنم مشکلش حل نمیشه
لطفا راهنماییم کنین
public void ShowAlertDialog() {
AlertDialog.Builder alertDialog = new AlertDialog.Builder(LearnActivity.this);
alertDialog.setTitle(R.string.title);
alertDialog.setMessage(R.string.message);
alertDialog.setIcon(R.drawable.ic_launcher);
// Setting Positive "Yes" Button
alertDialog.setPositiveButton(R.string.yes,
new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
dialog.cancel();
new NetCheck().execute();
}
});
// Setting Negative "NO" Button
alertDialog.setNegativeButton(R.string.no,
new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
// Write your code here to invoke NO event
dialog.cancel();
}
});
// Showing Alert Message
alertDialog.show();
}
public class NetCheck extends AsyncTask<String, String, Boolean>
{
private ProgressDialog nDialog;
@Override
protected void onPreExecute() {
super.onPreExecute();
nDialog = new ProgressDialog(LearnActivity.this);
nDialog.setTitle("Checking Network");
nDialog.setMessage("Loading..");
nDialog.setIndeterminate(false);
nDialog.setCancelable(true);
nDialog.show();
}
@Override
protected Boolean doInBackground(String... args) {
ConnectivityManager cm = (ConnectivityManager) getSystemService(Context.CONNECTIVITY_SERVICE);
NetworkInfo netInfo = cm.getActiveNetworkInfo();
if (netInfo != null && netInfo.isConnected()) {
try {
URL url = new URL("http://www.google.com");
HttpURLConnection urlc = (HttpURLConnection) url.openConnection();
urlc.setConnectTimeout(3000);
urlc.connect();
if (urlc.getResponseCode() == 200) {
return true;
}
}
catch (MalformedURLException e1) {
e1.printStackTrace();
}
catch (IOException e) {
e.printStackTrace();
}
}
return false;
}
@Override
protected void onPostExecute(Boolean th) {
if (th == true) {
nDialog.dismiss();
Toast.makeText(getApplicationContext(), "Your device is connected to internet !", Toast.LENGTH_LONG).show();
// new GetData().execute();
}
else {
nDialog.dismiss();
ShowAlertDialog();
}
}
}