java屏幕冻结,直到函数返回
在将文件推送到数据库之前,我需要使用代码检查是否可以访问internet。。 这是我正在使用的代码。如果我有网络连接,它可以正常工作,但如果没有,它会冻结6或7秒
public static boolean isInternetReachable() throws InterruptedException, IOException {
Process p1 = java.lang.Runtime.getRuntime().exec("ping -c 1 www.google.com");
int returnVal = p1.waitFor();
return (returnVal==0);
}
我想让它把文件一个文件一个文件地推送到数据库,我想每次都检查一下互联网是否正常工作
# 1 楼答案
# 2 楼答案
要检查用户是否已连接到internet,请使用此选项
您的屏幕冻结,因为您正在主线程上执行长时间运行的任务(上载文件),这可能导致您的应用程序没有响应。您必须使用AsyncTask、RxJava或协同程序(Kotlin)将该操作移出主线程。 See this