我一直在为大学项目开发一个应用程序。该应用程序我只是想检查一个网站是否可用(在线)。如果可用,则在webview中打开它,如果没有打开预定的网站。
经过一番研究,我找到了以下代码,但它似乎不起作用。应用程序始终打开bing.com(即,在运行pingHost之后,flag的值不会得到更新)
public class MainActivity extends Activity {
WebView web1;
String Address;
int flag=0;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
Timer repeatTask = new Timer();
repeatTask.scheduleAtFixedRate(new TimerTask() {
@Override
public void run() {
runOnUiThread(new Runnable() {
@Override
public void run() {
pingHost("http://www.google.com", 80, 5000);
if (flag==1) {
web1 = (WebView) findViewById(R.id.webView1);
Address = "https://learn2lead.home.blog";
WebSettings webSetting = web1.getSettings();
webSetting.setBuiltInZoomControls(true);
webSetting.setJavaScriptEnabled(true);
web1.setWebViewClient(new WebViewClient());
web1.loadUrl(Address);
} else if (flag==0){
web1 = (WebView) findViewById(R.id.webView1);
Address = "http://bing.com";
WebSettings webSetting = web1.getSettings();
webSetting.setBuiltInZoomControls(true);
webSetting.setJavaScriptEnabled(true);
web1.setWebViewClient(new WebViewClient());
web1.loadUrl(Address);
}
}
});
}
}, 0, 10000);
public void pingHost(final String host, final int port, final int timeout) {
new Thread(new Runnable() {
@Override
public void run() {
try (Socket socket = new Socket()) {
socket.connect(new InetSocketAddress(host, port), timeout);
flag = 1;
} catch (IOException e) {
flag = 0;
}
}
}).start();
}
}
答案 0 :(得分:0)
尝试
use App\Rules\MobileNo;
$rules = [
'phone' => ['required', new MobileNo],
];
将您发布的问题修改为有效。
但是在实现时,您应该考虑关闭计时器任务,并认为它确实是必需的10秒周期。
检查互联网是否可用,可靠且快速
public class MainActivity extends Activity {
WebView web1;
String Address;
int flag = 0;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
Timer repeatTask = new Timer();
repeatTask.scheduleAtFixedRate(new TimerTask() {
@Override
public void run() {
if (isInternetAvailable()){
flag = 1;
}else{
flag = 0;
}
System.out.println("pingHost flag: " + flag );
runOnUiThread(new Runnable() {
@Override
public void run() {
if (flag == 1) {
web1 = (WebView) findViewById(R.id.webView1);
Address = "https://learn2lead.home.blog";
WebSettings webSetting = web1.getSettings();
webSetting.setBuiltInZoomControls(true);
webSetting.setJavaScriptEnabled(true);
web1.setWebViewClient(new WebViewClient());
web1.loadUrl(Address);
} else if (flag == 0) {
web1 = (WebView) findViewById(R.id.webView1);
Address = "http://bing.com";
WebSettings webSetting = web1.getSettings();
webSetting.setBuiltInZoomControls(true);
webSetting.setJavaScriptEnabled(true);
web1.setWebViewClient(new WebViewClient());
web1.loadUrl(Address);
}
}
});
}
}, 0, 10000);
}
public boolean isInternetAvailable() {
try {
InetAddress ipAddr = InetAddress.getByName("google.com");
//You can replace it with your name
return !ipAddr.equals("");
} catch (Exception e) {
return false;
}
}
}