簡體   English   中英

如何使(沒有Internet連接)broadCastReceiver可以進行所有活動

[英]How to make (No Internet Connection) broadCastReceiver accessible to all the activities

我正在使用ConnectivityManager來檢查Internet連接,問題是,啟用Internet時無法重新啟動活動,並且所有活動都無法顯示錯誤消息(沒有Internet連接)。以下是我的代碼

  ConnectivityManager connectivityManager = (ConnectivityManager)getSystemService(Context.CONNECTIVITY_SERVICE);
    NetworkInfo networkInfo = connectivityManager.getActiveNetworkInfo();
    if(!(networkInfo!=null && networkInfo.isConnected())){
      Intent i = new Intent(this,NoInternetConnection.class);
      startActivity(i);
    }

對於NoInternetConnection類,我的編碼如下

 public class NoInternetConnection extends AppCompatActivity {
private static ImageView internetStatus;
private static TextView noConnectionText;
private static Button tryAgain;
@Override
protected void onCreate(final Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    final ActionBar actionBar =getSupportActionBar();
    actionBar.hide();
    setContentView(R.layout.activity_no_internet_connection);
    internetStatus = (ImageView) findViewById(R.id.internetStatus);
    noConnectionText=(TextView)findViewById(R.id.noConnectionText);
    tryAgain=(Button)findViewById(R.id.tryAgain);
    tryAgain.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            //checking internet connection
            ConnectivityManager connectivityManager = (ConnectivityManager) getSystemService(Context.CONNECTIVITY_SERVICE);
            NetworkInfo networkInfo = connectivityManager.getActiveNetworkInfo();
            if (!(networkInfo != null && networkInfo.isConnected())) 
            {
              onRestart();
            }
            else {
                finish();
            }
        }
    });
    internetStatus.setImageResource(R.drawable.img);
    noConnectionText.setText("No Internet Connection");
 }
}

建立這個課程

public class Utils{

public static void startActivity(Context context,Class clas,Bundle extras)
    {
        ConnectivityManager connectivityManager = 
        (ConnectivityManager)getSystemService(Context.CONNECTIVITY_SERVICE);
        NetworkInfo networkInfo = connectivityManager.getActiveNetworkInfo();
        if(!(networkInfo!=null && networkInfo.isConnected())){
            Intent i = new Intent(context,NoInternetConnection.class);
            context.startActivity(i);
        }else {
            Intent i = new Intent(context,clas);
            i.putExtras(extras);
            context.startActivity(i);
        }
    }
}

並且每當您需要開始一項活動而不是打電話時

Intent i = new Intent(this,YourActivity.class);
startActivity(i);

調用Utils.startActivity(context,YourActivity.class,new Bundle());

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM