如何使(无互联网连接)所有活动都可以访问 broadCastReceiver
How to make (No Internet Connection) broadCastReceiver accessible to all the activities
我正在使用 ConnectivityManager 检查 Internet 连接,问题是,启用 Internet 后我无法重新启动 activity,而且我无法显示所有错误消息(无 Internet 连接) activities.Below 是我的代码
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 class,我的编码如下
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");
}
}
创建这个class
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);
}
}
}
并且每当您需要启动 activity 而不是调用
Intent i = new Intent(this,YourActivity.class);
startActivity(i);
致电Utils.startActivity(context,YourActivity.class,new Bundle());
我正在使用 ConnectivityManager 检查 Internet 连接,问题是,启用 Internet 后我无法重新启动 activity,而且我无法显示所有错误消息(无 Internet 连接) activities.Below 是我的代码
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 class,我的编码如下
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");
}
}
创建这个class
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);
}
}
}
并且每当您需要启动 activity 而不是调用
Intent i = new Intent(this,YourActivity.class);
startActivity(i);
致电Utils.startActivity(context,YourActivity.class,new Bundle());