[英]How to make an object accessible to all activities in an Android program?
[英]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.