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


رتبه موضوع:
  • 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 یا روش دیگر) و فراخوانی آن در اکتیویتی ، بررسی اتصال به اینترنت انجام شود؟ زیرا دوباره قرار دادن این کد در چند اکتیویتی حجم برنامه را بالا می‌برد و باعث غیر مهندسی شدن آن می‌شود.
پاسخ

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

#2
سلام.
شما باید یک کلاس (class) بسازید که حاوی کدهای فوق باشد (مثلا کدها را در یک روش (method) از آن کلاس قرار می دهید)، سپس در هر Activity که قصد دارید آن کد اجرا شود، ابتدا یک شیء (object) از آن کلاس (class) می سازید و سپس روش (method) مورد نظر از شیء را اجرا می کنید (که از کلاس به ارث برده است). در مورد ساخت یک کلاس (class) برای پروژه اندروید، کلید زیر را بخوانید :

http://www.kelidestan.com/keys/keys.php?key=342

البته در کلید فوق، Context مربوط به Activity را هم به کلاس می فرستیم، اما اگر کدها نیازی به Context ندارند، می توانید بخش مربوط به دریافت Context را حذف کنید.

 
bookbook 
لطفا برای درج کد، از دکمه مخصوص درج کد در ادیتور انجمن استفاده کنید.
در مورد برنامه نویسی، مدیران تنها راهنمایی می کنند و نوشتن برنامه نهایی، به عهده کاربران می باشد (اینجا محلی برای یادگیری است، نه سفارش کدنویسی).
کاربران باید ابتدا خود به خطایابی برنامه بپردازند، نه اینکه به محض دیدن خطا، کدها را در انجمن، copy و paste کرده و از مدیران انتظار بررسی داشته باشند.
پاسخ

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

#3
من فکر می‌کنم در این کد نیاز به تشخیص اکتیویتی است تا کد در آن اجرا شود: 

کد:
AlertDialog.Builder alertDialog = new AlertDialog.Builder(MainActivity.this);
________________________________________________________________
nDialog = new ProgressDialog(MainActivity.this);

امکانش است که بشود به‌جای MainActivity، اکتیوتی که نیاز به نمایش پیغام است به صورت خودکار یا دستی انتخاب شود؟
من برنامه نویسی اندروید را تازه شروع کرده‌ام؛ اگر می‌شود کمی بیشتر راهنمایی کنید.
با تشکر
پاسخ

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

#4
بله برخی کدها نیاز به شناسایی Activity دارند و در این مواقع، با ارسال Context مربوط به Activity به آن کلاس (class)، با استفاده از Context می تواند آن Activity را شناسایی کند.
من طی یکی دو روز آینده، یک مبحث در این مورد می نویسم تا دقیقا متوجه شوید که کدنویسی باید به چه صورت باشد. هر وقت آماده شد، لینک آن را در همین موضوع قرار می دهم.

bookbook 
لطفا برای درج کد، از دکمه مخصوص درج کد در ادیتور انجمن استفاده کنید.
در مورد برنامه نویسی، مدیران تنها راهنمایی می کنند و نوشتن برنامه نهایی، به عهده کاربران می باشد (اینجا محلی برای یادگیری است، نه سفارش کدنویسی).
کاربران باید ابتدا خود به خطایابی برنامه بپردازند، نه اینکه به محض دیدن خطا، کدها را در انجمن، copy و paste کرده و از مدیران انتظار بررسی داشته باشند.
پاسخ
 سپاس شده توسط ramtin2080

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

#5
همان طور که قول داده بودم، یک مبحث در مورد ساخت کلاس (class) جدید در پروژه اندروید براتون نوشتم (همچنین شرح چگونگی شناسایی Activity) :

http://www.kelidestan.com/keys/keys.php?key=2796

که در مورد اجرای متعدد یک سری کد در Activity های مختلف با استفاده از یک کلاس (class) کمکتون میکنه. در مورد شناسایی Activity نیز در انتهای همان کلید، توضیحاتی داده شده است. سعی کردم با حوصله مبحث نوشته شود تا تمامی موارد مهم در آن ذکر شود.

bookbook 
لطفا برای درج کد، از دکمه مخصوص درج کد در ادیتور انجمن استفاده کنید.
در مورد برنامه نویسی، مدیران تنها راهنمایی می کنند و نوشتن برنامه نهایی، به عهده کاربران می باشد (اینجا محلی برای یادگیری است، نه سفارش کدنویسی).
کاربران باید ابتدا خود به خطایابی برنامه بپردازند، نه اینکه به محض دیدن خطا، کدها را در انجمن، copy و paste کرده و از مدیران انتظار بررسی داشته باشند.
پاسخ
 سپاس شده توسط ramtin2080

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

#6
ممون، خیلی کمک کردید. امیدوارم سایتتان همیشه جزء بهترین‌ها باشد.
من طبق آموزش شما کد‌ها را قرار دادم:


کد:
public class ConnectionDetector extends TestCase {
private Context context;

public ConnectionDetector (Context context) {
this.context = context;
}


public void ShowAlertDialog() {
AlertDialog.Builder alertDialog = new AlertDialog.Builder(this.context);
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();
}

private class NetCheck extends AsyncTask<String,String,Boolean>
{


/**
* 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 ni = cm.getActiveNetworkInfo();
if (ni == null) {
ShowAlertDialog();
return false;
} else
startActivity(new Intent(this.context, screen2.class));
return true;
}

}

}

اما eclips برای getSystemService و خط startActivity(new Intent(this.context, screen2.class)); خطا می‌دهد.
پاسخ
 سپاس شده توسط admin

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

#7
کد زیر را در نظر بگیرید :

کد:
startActivity(new Intent(this.context, screen2.class));

باید به کد زیر تبدیل شود :

کد:
context.startActivity(new Intent(context, screen2.class));

که در آن، به جای startActivity ، عبارت context.startActivity را نوشته ایم.

همچنین کد زیر را در نظر بگیرید :

کد:
ConnectivityManager cm = (ConnectivityManager) getSystemService(Context.CONNECTIVITY_SERVICE);

باید به کد زیر تبدیل شود :

کد:
ConnectivityManager cm = (ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE);

که در آن، به جای getSystemService ، عبارت context.getSystemService را نوشته ایم، همچنین به جای Context ، عبارت context را نوشته ایم.
در واقع در چگونگی اشاره به Context متناظر با Activity مشکل داشتند.

bookbook 
لطفا برای درج کد، از دکمه مخصوص درج کد در ادیتور انجمن استفاده کنید.
در مورد برنامه نویسی، مدیران تنها راهنمایی می کنند و نوشتن برنامه نهایی، به عهده کاربران می باشد (اینجا محلی برای یادگیری است، نه سفارش کدنویسی).
کاربران باید ابتدا خود به خطایابی برنامه بپردازند، نه اینکه به محض دیدن خطا، کدها را در انجمن، copy و paste کرده و از مدیران انتظار بررسی داشته باشند.
پاسخ

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

#8
در ضمن، برخی از روش ها، به جای Context مربوط به Activity ، با  Context مربوط به Application سر و کار دارند. در این مورد، می توانید کلید زیر را بخوانید :

http://www.kelidestan.com/keys/keys.php?key=341


 
bookbook 
لطفا برای درج کد، از دکمه مخصوص درج کد در ادیتور انجمن استفاده کنید.
در مورد برنامه نویسی، مدیران تنها راهنمایی می کنند و نوشتن برنامه نهایی، به عهده کاربران می باشد (اینجا محلی برای یادگیری است، نه سفارش کدنویسی).
کاربران باید ابتدا خود به خطایابی برنامه بپردازند، نه اینکه به محض دیدن خطا، کدها را در انجمن، copy و paste کرده و از مدیران انتظار بررسی داشته باشند.
پاسخ

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

#9
قبل از توضیحات جدید ابتدا چند نکته را تذکر بدم :
1- چند ارسال را حذف یا تصحیح کردم چون راهنمایی آنها غلط بود.
2- دو حالت private و public تفاوتی در این حالت نداشتند.
3- لطفا در صفحه اصلی انجمن، در ابتدای صفحه، راهنما در مورد صحیح نوشتن کدها در ارسال را بخوانید و با آن شیوه کدها را در ارسال ها بنویسید (کدهاتون به هم ریخته هستند و خوندنشون واقعا سخته).
4- بنده یک پروژه اندروید ساختم تا خودم مشکلات را بررسی کنم. کدهای کلاس را به صورت زیر نوشتم (نام کلاس من با مال شما فرق دارد، مراقب این تفاوت ها باشید) :

کد:
package com.kelidestan.newclass;

import junit.framework.TestCase;
import android.app.AlertDialog;
import android.content.Context;
import android.content.DialogInterface;
import android.content.Intent;
import android.net.ConnectivityManager;
import android.net.NetworkInfo;
import android.os.AsyncTask;
import android.widget.Toast;

public class MyClass extends TestCase {
    
    public Context context;
        
    public MyClass (Context context) {
        this.context = context;  
    }
    
    public void ShowAlertDialog() {
         AlertDialog.Builder alertDialog = new AlertDialog.Builder(this.context);
         alertDialog.setTitle("string");
         alertDialog.setMessage("string");
         alertDialog.setIcon(R.drawable.ic_launcher);
         // Setting Positive "Yes" Button
         alertDialog.setPositiveButton("string",
         new DialogInterface.OnClickListener() {
         public void onClick(DialogInterface dialog, int which) {
         dialog.cancel();
         new NetCheck().execute();
         }
         });
         // Setting Negative "NO" Button
         alertDialog.setNegativeButton("string",
         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();
         }

         public class NetCheck extends AsyncTask<String,String,Boolean>
         {


         /**
         * Gets current device state and checks for working internet connection by trying .
         **/
         @Override
         protected Boolean doInBackground(String... args){

         ConnectivityManager cm = (ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE);
         NetworkInfo ni = cm.getActiveNetworkInfo();
         if (ni == null) {
         ShowAlertDialog();
         return false;
         } else
             context.startActivity(new Intent(context, MyActivity.class));
         return true;
         }

         }

}

در این حالت برنامه eclipse هیچ پیام خطایی نمایش نمی دهد. با توجه به اینکه خیلی گرفتارم، اجرا کردن برنامه اندروید را به عهده خودتان می گذارم. اگر بازم مشکلی بود، این بار به طور صحیح، کدهای کلاس و همچنین چگونگی اجرا کردن آن در Activity را در ارسالتان قرار بدهید تا بررسی کنم (لطفا کدها را با همان روشی که عرض کردم در ارسال قرار بدهید).

در ارسال های قبلی (آنهایی که حذف کردم) کمی شتاب زده پاسخ دادم که به این دلیل بود که همزمان در حال بررسی نرم افزاری دیگر بودم (حسابی فکرم مشغول بود) و نمی توانستم کدها را به طور دقیق تست کنم، به هر حال امیدوارم مشکلتان با این ارسال دیگر حل بشود.

bookbook 
لطفا برای درج کد، از دکمه مخصوص درج کد در ادیتور انجمن استفاده کنید.
در مورد برنامه نویسی، مدیران تنها راهنمایی می کنند و نوشتن برنامه نهایی، به عهده کاربران می باشد (اینجا محلی برای یادگیری است، نه سفارش کدنویسی).
کاربران باید ابتدا خود به خطایابی برنامه بپردازند، نه اینکه به محض دیدن خطا، کدها را در انجمن، copy و paste کرده و از مدیران انتظار بررسی داشته باشند.
پاسخ

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

#10
کد به درستی اجرا می‌شود، از کمکتان بشیار متشکرم. 
حال چگونه می‌توانم کل این کلاس را در اکتیویتی دلخواه اجرا کنم؟
پاسخ
 سپاس شده توسط admin

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

#11
من کدهایتان را در پروژه اندروید تست کردم (این بار برای اینکه ببینم درست اتصال اینترنت رو تشخیص میده یا نه). با مواردی که مورد بحث ما بود، مشکلی نداشت و در حالتی هم که به اینترنت متصل بودیم، درست کار می کرد، اما برای حالتی که من گوشیم را از شبکه wireless قطع می کردم، برنامه force close می داد. چون کدها شبیه کدهایی بود که من در سایت قرار داده بودم، قبلا فکر می کردم که عینا آنها را در پروژه اندروید خود قرار داده اید، اما اینگونه نبود و با تغییر دادن آنها، مشکلاتی به وجود آمده بود. بنابراین بنده بر اساس کلید زیر، کدها را تکمیل کردم :

http://www.kelidestan.com/keys/keys.php?key=2408

که البته قبلا اصل کدهای آن را در کلید زیر شرح داده بودیم (روش اول در این کلید) :

http://www.kelidestan.com/keys/keys.php?key=287

بنابراین بنده کل پروژه اندرویدی که ساختم و آن را در دو حالت وصل به اینترنت و عدم اتصال به اینترنت تست کرده ام را برایتان در پیوست این ارسال قرار دادم تا خودتان کدهای آن را بررسی کنید (نحوه اجرای کدهای آن مشخص است). فایل apk ساخته شده از آن را هم پیوست کرده ام.
اما بد نیست که خود کدها رو هم اینجا بنویسم :
کدهای کلاس (نام آن با کلاس شما فرق دارد) :

کد:
package com.kelidestan.newclass;

import java.io.IOException;
import java.net.HttpURLConnection;
import java.net.MalformedURLException;
import java.net.URL;

import junit.framework.TestCase;
import android.app.AlertDialog;
import android.app.ProgressDialog;
import android.content.Context;
import android.content.DialogInterface;
import android.content.Intent;
import android.net.ConnectivityManager;
import android.net.NetworkInfo;
import android.os.AsyncTask;
import android.widget.Toast;

public class MyClass extends TestCase {
    
    public Context context;
        
    public MyClass (Context context) {
        this.context = context;  
    }
    
    public void ShowAlertDialog() {
         AlertDialog.Builder alertDialog = new AlertDialog.Builder(this.context);
         alertDialog.setTitle("Title");
         alertDialog.setMessage("No Internet");
         alertDialog.setIcon(R.drawable.ic_launcher);
         // Setting Positive "Yes" Button
         alertDialog.setPositiveButton("Yes (repeat check internet)",
         new DialogInterface.OnClickListener() {
             public void onClick(DialogInterface dialog, int which) {
                 dialog.cancel();
                 new NetCheck().execute();
             }
         });
         // Setting Negative "NO" Button
         alertDialog.setNegativeButton("No (cancel)",
         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(context);
                nDialog.setTitle("Checking Network");
                nDialog.setMessage("Loading..");
                nDialog.setIndeterminate(false);
                nDialog.setCancelable(true);

                nDialog.show();
            }
            /**
             * Gets current device state and checks for working internet connection by trying Google.
            **/
            @Override
            protected Boolean doInBackground(String... args){

                ConnectivityManager cm = (ConnectivityManager) context.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) {
                        // 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();
                    Toast.makeText(context.getApplicationContext(), "Your device is connected to internet !", Toast.LENGTH_SHORT).show();
                    context.startActivity(new Intent(context, MyActivity.class));
                    // new GetData().execute();
                }
                else{
                    nDialog.dismiss();
                    ShowAlertDialog();
                }
            }
        }
        
         public void CheckInternet() {
             new NetCheck().execute();
         }
        
        
}

کدهای Activity اصلی برنامه اندروید :

کد:
package com.kelidestan.newclass;

import android.app.Activity;
import android.os.Bundle;

public class MainActivity extends Activity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        
        MyClass myClass = new MyClass(this);
        myClass.CheckInternet();
    }


}

کدها را با دقت بررسی کنید. همچنین برنامه اندروید را هم در دو حالت اتصال و عدم اتصال به اینترنت چک کنید.



فایل‌های پیوست

دانلود NewClass_folder.zip

نام فایل NewClass_folder.zip
نوع فایل .zip
دفعات دانلود 330
اندازه 936.99 KB
ارسال کننده فایل admin

دانلود NewClass.apk

نام فایل NewClass.apk
نوع فایل .apk
دفعات دانلود 229
اندازه 265.19 KB
ارسال کننده فایل admin
bookbook 
لطفا برای درج کد، از دکمه مخصوص درج کد در ادیتور انجمن استفاده کنید.
در مورد برنامه نویسی، مدیران تنها راهنمایی می کنند و نوشتن برنامه نهایی، به عهده کاربران می باشد (اینجا محلی برای یادگیری است، نه سفارش کدنویسی).
کاربران باید ابتدا خود به خطایابی برنامه بپردازند، نه اینکه به محض دیدن خطا، کدها را در انجمن، copy و paste کرده و از مدیران انتظار بررسی داشته باشند.
پاسخ
 سپاس شده توسط ramtin2080

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

#12
در کدی که قرار دادید، در صورت اتصال دستگاه به اینترنت MyActivity  اجرا می‌شود. اگر بخواهیم که در هر اکتیویتی که اتصال به اینترنت بررسی می‌شود این خط از کد تغییر کند و اکتیویتی مورد نظر ما اجرا شود، چه باید کرد؟ ( برای مثال با باز نمودن هر اکتیویتی، در صورت برقراری ارتباط با اینترنت خود اکتیویتی اجرا شود)
با تشکر از شما بابت وقتی که صرف پاسخ دادن می‌کنید
پاسخ

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

#13
(۱۳۹۳/۱۰/۰۶, ۰۳:۲۷ ب.ظ)'ramtin2080' نوشته: در کدی که قرار دادید، در صورت اتصال دستگاه به اینترنت MyActivity  اجرا می‌شود. اگر بخواهیم که در هر اکتیویتی که اتصال به اینترنت بررسی می‌شود این خط از کد تغییر کند و اکتیویتی مورد نظر ما اجرا شود، چه باید کرد؟ ( برای مثال با باز نمودن هر اکتیویتی، در صورت برقراری ارتباط با اینترنت خود اکتیویتی اجرا شود)
با تشکر از شما بابت وقتی که صرف پاسخ دادن می‌کنید
 

کد مورد نظر را با توجه به آنچه شما خواسته بودید (کدی که گذاشتید)، نوشتم. یعنی شما می خواستید (بر اساس کد اولیه شما می گویم) که چک شود که اینترنت متصل است یا نه، اگر متصل بود، به Activity دیگری منتقل شود (اگر هم متصل نبود که یک Dialog نمایش داده شود). اکنون اگر شما هدفتان تنها چک کردن اتصال به اینترنت است، آن خط از کدها را حذف کنید تا تنها یک پیام کوتاه با Toast نمایش داده شود (در صورت اتصال به اینترنت) و در همان Activity باقی بمانید.
اگر هم حتما باید به Activity های مختلف بروید، می توانید نام Activity بعدی را به آن ارسال کنید (یک ورودی بر اساس نام Activity بعدی دریافت می کند).
اصولی تر این است که ابتدای اجرای هر Activity ، چک کنید که کاربر به اینترنت متصل است یا نه، اگر متصل نبود که پیامی نمایش داده شود و ادامه کدهای Activity اجرا نشوند، اگرهم متصل بود که کدهای Activity اجرا می شوند. مثلا می توانید تعیین کنید که اتصال به اینترنت چک شود و کلاس (class) مورد نظر، یک متغیر boolean را برگرداند که اگر true بود، کدهای Activity اجرا شوند.

bookbook 
لطفا برای درج کد، از دکمه مخصوص درج کد در ادیتور انجمن استفاده کنید.
در مورد برنامه نویسی، مدیران تنها راهنمایی می کنند و نوشتن برنامه نهایی، به عهده کاربران می باشد (اینجا محلی برای یادگیری است، نه سفارش کدنویسی).
کاربران باید ابتدا خود به خطایابی برنامه بپردازند، نه اینکه به محض دیدن خطا، کدها را در انجمن، copy و paste کرده و از مدیران انتظار بررسی داشته باشند.
پاسخ
 سپاس شده توسط ramtin2080

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

#14
در مورد ارسال نام Activity بعد می‌شود بیشتر توضیح دهید؟
پاسخ

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

#15
(۱۳۹۳/۱۰/۰۶, ۰۷:۱۷ ب.ظ)'ramtin2080' نوشته: در مورد ارسال نام Activity بعد می‌شود بیشتر توضیح دهید؟

 

با خواندن کلید زیر، متوجه می شوید که چگونه یک مقدار (ورودی برای کلاس) را به یک کلاس (Class) ارسال کنید (نام Activity را به صورت رشته (String) به کلاس مورد نظر ارسال می کنید) :

کلید شماره 342

برای رفتن به activity جدید، با استفاده از یک رشته (تعریف نام activity با رشته)، کلید زیر را بخوانید :

کلید شماره 252

bookbook 
لطفا برای درج کد، از دکمه مخصوص درج کد در ادیتور انجمن استفاده کنید.
در مورد برنامه نویسی، مدیران تنها راهنمایی می کنند و نوشتن برنامه نهایی، به عهده کاربران می باشد (اینجا محلی برای یادگیری است، نه سفارش کدنویسی).
کاربران باید ابتدا خود به خطایابی برنامه بپردازند، نه اینکه به محض دیدن خطا، کدها را در انجمن، copy و paste کرده و از مدیران انتظار بررسی داشته باشند.
پاسخ
 سپاس شده توسط ramtin2080

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

#16
فرستادن 
نام Activity را به صورت رشته به چه صورت است؟ آیا به این صورت است:

کد پی‌اچ‌پی:
String StringClass =  this.context

زیرا من با قرار دادن این کد خطا دریافت می‌کنم.
با تشکر
پاسخ

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

#17
کلید زیر را بخوانید (در بخش هایی از آن، در مورد تعریف ورودی برای یک کلاس (Class) توضیحاتی داده شده) :

کلید شماره 2796

bookbook 
لطفا برای درج کد، از دکمه مخصوص درج کد در ادیتور انجمن استفاده کنید.
در مورد برنامه نویسی، مدیران تنها راهنمایی می کنند و نوشتن برنامه نهایی، به عهده کاربران می باشد (اینجا محلی برای یادگیری است، نه سفارش کدنویسی).
کاربران باید ابتدا خود به خطایابی برنامه بپردازند، نه اینکه به محض دیدن خطا، کدها را در انجمن، copy و paste کرده و از مدیران انتظار بررسی داشته باشند.
پاسخ
 سپاس شده توسط ramtin2080

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

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


پرش به انجمن:


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