选项。 如果点击了重试,请检查互联网连接;如果可用,请调用 getData-6ren">
gpt4 book ai didi

java - 我应该如何检查互联网连接并显示 "retry"和 "cancel"对话框?

转载 作者:行者123 更新时间:2023-11-30 01:26:22 24 4
gpt4 key购买 nike

我想检查互联网连接,如果可用,请调用 getData(),但如果不可用,则显示一个包含RETRYCANCEL 的对话框> 选项。

如果点击了重试,请检查互联网连接;如果可用,请调用 getData,但如果不可用,则再次显示对话框(类似于循环)。

或者,如果单击取消,则完全退出应用。

我正在使用此类来检查网络可用性和互联网连接:

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;

}

}

在 MainActivity 中我这样做:

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();

}

从上面的代码,我有三个问题:

  1. if (!NetworkCheck.isAvailableAndConnected(context)) { 行中,context 以红色突出显示,当我悬停它时,我看到 Cannot resolve symbol 'context' .如果我将方法留空或键入 thisgetActivity; Android Studio 提示。哪个参数显示我传递了方法?
  2. 调用finish() 只会终止 Activity 。是否应该终止整个应用程序?如何终止?
  3. 我还做错了什么吗?

最佳答案

1) 如果你不使用 fragment ,在 context 的位置你可以做一个像这样的解决方法(首先你声明):

        final Context mContext;
mContext = this;

然后将 context 替换为 mContext

2) 不建议终止 Activity(您可能已经读过 Activity Lifecycle),但您可以尝试 android.os.Process.killProcess(android.os.Process.myPid());

关于java - 我应该如何检查互联网连接并显示 "retry"和 "cancel"对话框?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36380273/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com