【发布时间】:2019-09-07 00:15:29
【问题描述】:
我需要一个在后台不断 ping 谷歌的服务。但我不知道该怎么做。我刚来这地方。我的方法不行就不重复了。它只工作一次,并且总是返回“false”。
isConnectedToServer 函数
public boolean isConnectedToServer(String url, int timeout) {
try{
URL myUrl = new URL(url);
URLConnection connection = myUrl.openConnection();
connection.setConnectTimeout(timeout);
connection.connect();
return true;
} catch (Exception e) {
// Handle your exceptions
return false;
}}
onCreate
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
if(isConnectedToServer("http://www.google.com",3000)){
Toast.makeText(this, "Okay", Toast.LENGTH_SHORT).show();
}else{
Toast.makeText(this, "Not Okay", Toast.LENGTH_SHORT).show();
}}
清单
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.CHANGE_WIFI_STATE" />
我在屏幕上看到一次 Not Okay。只有一次。即使我有互联网连接。我该怎么办?
【问题讨论】:
-
您可以做的第一件事是从您的 try catch 中打印错误日志,这可能会给您一个提示。您可能还需要互联网许可。
-
请更新您的问题的日志异常。