انجمن سایت کلیدستان


رتبه موضوع:
  • 0 رای - 0 میانگین
  • 1
  • 2
  • 3
  • 4
  • 5
بررسی اتصال به اینترنت در چند اکتیویتی، در برنامه نویسی اندروید

بررسی اتصال به اینترنت در چند اکتیویتی، در برنامه نویسی اندروید

#1
با سلام
من از کد زیر برای بررسی اتصال به اینترنت استفاده می‌کنم:

کد:
public void ShowAlertDialog() {
AlertDialog.Builder alertDialog = new AlertDialog.Builder(MainActivity.this);
alertDialog.setTitle(R.string.nettitle);
alertDialog.setMessage(R.string.netmessage);
alertDialog.setIcon(R.drawable.ic_launcher);
// Setting Positive "Yes" Button
alertDialog.setPositiveButton(R.string.netyes,
new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int which) {
dialog.cancel();
new NetCheck().execute();
}
});
// Setting Negative "NO" Button
alertDialog.setNegativeButton(R.string.netno,
new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int which) {
// Write your code here to invoke NO event
dialog.cancel();
}
});
// Showing Alert Message
alertDialog.show();
}


/**
* Async Task to check whether internet connection is working.
**/

private class NetCheck extends AsyncTask<String,String,Boolean>
{
private ProgressDialog nDialog;

@Override
protected void onPreExecute(){
super.onPreExecute();
nDialog = new ProgressDialog(MainActivity.this);
nDialog.setTitle("لطفاً صیر کنید");
nDialog.setMessage("بررسی اتصال به اینترنت");
nDialog.setIndeterminate(false);
nDialog.setCancelable(true);
nDialog.setButton(DialogInterface.BUTTON_NEGATIVE, "بستن", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
dialog.dismiss();
}
});

nDialog.show();
}
/**
* Gets current device state and checks for working internet connection by trying .
**/
@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://bing.com");
HttpURLConnection urlc = (HttpURLConnection) url.openConnection();
urlc.setConnectTimeout(3000);
urlc.connect();
if (urlc.getResponseCode() == 200) {
return true;
}
} catch (MalformedURLException e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
return false;

}
@Override
protected void onPostExecute(Boolean th){

if(th == true){
nDialog.dismiss();
startActivity(new Intent(MainActivity.this, screen2.class));
}
else{
nDialog.dismiss();
ShowAlertDialog();
}
}
}


حال من می‌خواهم دو دکمه در دو اکتیویتی مجزا بسازم که زمانی روی هر یک  از آن ها کلیک شد این کد اجرا شود. آیا راهی است که تنها با یکبار نوشتن این کد (به صورت Global یا روش دیگر) و فراخوانی آن در اکتیویتی ، بررسی اتصال به اینترنت انجام شود؟ زیرا دوباره قرار دادن این کد در چند اکتیویتی حجم برنامه را بالا می‌برد و باعث غیر مهندسی شدن آن می‌شود.
پاسخ


پیام‌های این موضوع
بررسی اتصال به اینترنت در چند اکتیویتی، در برنامه نویسی اندروید - توسط ramtin2080 - ۱۳۹۳/۰۸/۰۴, ۰۸:۰۶ ب.ظ

پرش به انجمن:


کاربران در حال بازدید این موضوع: 1 مهمان