gpt4 book ai didi

java - 在 Android 中检查互联网连接时出错

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

想法是当没有可用的 Internet 连接时,向用户显示我的自定义对话框,指示没有连接。否则,当页面在 WebView 中加载时,显示一个 ProgressDialog 以显示页面正在加载并在加载完成后关闭。当有 Internet 连接时,此代码有效,但如果没有,它会崩溃,我找不到错误所在。

package com.tariknotebook;

import android.app.Activity;
import android.app.Dialog;
import android.app.ProgressDialog;
import android.content.Context;
import android.graphics.Bitmap;
import android.net.ConnectivityManager;
import android.net.NetworkInfo;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.webkit.WebView;
import android.webkit.WebViewClient;
import android.widget.Button;

public class NoteBook extends Activity {
/** Called when the activity is first created. */
WebView web;

@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
web = (WebView) findViewById(R.id.browserMine);
web.setWebViewClient(new HelloWebViewClient());
web.getSettings().setJavaScriptEnabled(true);
}

@Override
protected void onStart() {
// TODO Auto-generated method stub
super.onStart();
web.loadUrl("http://m.seslisozluk.com");
}

ProgressDialog dialog;
Dialog connDialog;

@Override
protected Dialog onCreateDialog(int id) {

switch(id)
{
case 1:
dialog = ProgressDialog.show(NoteBook.this, "Loading",
"Loading.. Please wait.");

break;
case 2:
connDialog = new Dialog(getApplicationContext());
connDialog.setContentView(R.layout.connection);
connDialog.setTitle("No Internet Connection");

Button closeButton = (Button) findViewById(R.id.closeButton);
closeButton.setOnClickListener(new closeButtonOnClickListener());
connDialog.show();
break;
}


return super.onCreateDialog(id);
}

private class closeButtonOnClickListener implements OnClickListener
{
public void onClick(View v) {
connDialog.dismiss();
};
}

private class HelloWebViewClient extends WebViewClient {
@Override
public boolean shouldOverrideUrlLoading(WebView view, String url) {
view.loadUrl(url);
return true;
}
@Override
public void onPageStarted(WebView view, String url, Bitmap favicon) {
// TODO Auto-generated method stub
super.onPageStarted(view, url, favicon);
ConnectivityManager conStatus = (ConnectivityManager) view.getContext().getApplicationContext().getSystemService(Context.CONNECTIVITY_SERVICE);
if(conStatus.getActiveNetworkInfo().isConnected() && conStatus.getActiveNetworkInfo() != null)
showDialog(1);
else
showDialog(2);
}

@Override
public void onPageFinished(WebView view, String url) {
// TODO Auto-generated method stub
super.onPageFinished(view, url);
dialog.dismiss();

}

}
}

这也是错误日志:

error log

最佳答案

当您发布错误消息时,您应该告诉我们来源对应的是哪一行。

通过将您的代码粘贴到文本编辑器中,我相信第 83 行是:


如果(conStatus.getActiveNetworkInfo()。isConnected()&& conStatus.getActiveNetworkInfo()!= null)

这强烈表明 conStatus 为 null,您正在尝试调用不存在的对象的方法。

您应该首先检查它是否为非空。

关于java - 在 Android 中检查互联网连接时出错,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4348509/

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