Java 我应该如何检查internet连接并显示“a”;“重试”;及;取消“;对话
我想检查internet连接,如果可用,请调用Java 我应该如何检查internet连接并显示“a”;“重试”;及;取消“;对话,java,android,Java,Android,我想检查internet连接,如果可用,请调用getData(),但如果不可用,则显示一个带有重试和取消选项的对话框 如果单击了重试,请检查internet连接;如果可用,则调用getData,但如果不可用,则再次显示对话框(类似于循环) 或者,如果单击了取消,则完全退出应用程序 我正在使用此类检查网络可用性和internet连接: public class NetworkCheck { public static boolean isAvailableAndConnected(Con
getData()
,但如果不可用,则显示一个带有重试和取消选项的对话框
如果单击了重试,请检查internet连接;如果可用,则调用getData
,但如果不可用,则再次显示对话框(类似于循环)
或者,如果单击了取消,则完全退出应用程序
我正在使用此类检查网络可用性和internet连接:
public class NetworkCheck {
public static boolean isAvailableAndConnected(Context context) {
ConnectivityManager cm = (ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE);
boolean isNetworkAvailable = cm.getActiveNetworkInfo() != null;
boolean isNetWorkConnected = isNetworkAvailable && cm.getActiveNetworkInfo().isConnected();
return isNetWorkConnected;
}
}
在主要活动中,我会这样做:
if (NetworkCheck.isAvailableAndConnected(this)) {
//Caling method to get data
getData();
} else {
final AlertDialog.Builder alertDialogBuilder = new AlertDialog.Builder(this);
alertDialogBuilder.setTitle("No Internet Connection");
alertDialogBuilder.setMessage("Failed to load. Please ensure ypu're connected to the internet and try again");
alertDialogBuilder.setPositiveButton("Retry", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
if (!NetworkCheck.isAvailableAndConnected(context)) {
alertDialogBuilder.show();
} else {
getData();
}
}
});
alertDialogBuilder.setNegativeButton("Cancel", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
finish();
}
});
alertDialogBuilder.show();
}
从以上代码中,我有三个问题:
this
或getActivity
,Android Studio会抱怨。哪个参数显示我通过了该方法finish()
2) 终止活动不是一项建议(您可能已经阅读了有关活动生命周期的内容),但您可以尝试
android.os.Process.killProcess(android.os.Process.myPid());
在MainActivity中我应该在哪里声明final Context mContext;mContext=this;
请?}其他{final Context mContext;mContext=this;final AlertDialog.Builder alertDialogBuilder=new AlertDialog.Builder(this);我做了那个,还有这个:if(!NetworkCheck.isAvailableAndConnected(mContext()){
mContext
用红色下划线标出了info方法调用expectedExcuse me,但它正在指责所需的方法调用,因为您没有编写mContext,而是编写了mContext()取而代之的是,在结尾用括号表示,这是一个方法的符号,而这不是一个方法,因此引起了错误。谢谢法拉第。最好。感谢“某人”的否决票!上帝保佑。
final Context mContext;
mContext = this;