我想知道是否可以在没有Context的情况下检查android中的连接,因为我在后台运行的线程不知道上下文。 如果没有办法,最好的做法是将上下文传递给线程吗?
感谢
答案 0 :(得分:4)
是的,您需要Context
。可能,您的线程已经可以访问Context
了,它由Runnable
提供,它使用的是Activity
或Service
的内部类,它分叉了线程。
答案 1 :(得分:0)
您的可运行对象将在Activity或Service中运行,因此它可以访问其方法
我认为你可以做到:
OuterClassName.this.getContext();
答案 2 :(得分:0)
您可以使用以下方法
科特琳:
fun isNetworkAvailable1(): Boolean {
val runtime = Runtime.getRuntime()
try {
val ipProcess = runtime.exec("/system/bin/ping -c 1 8.8.8.8")
val exitValue = ipProcess.waitFor()
return exitValue == 0
} catch (e: IOException) {
e.printStackTrace()
} catch (e: InterruptedException) {
e.printStackTrace()
}
return false
}
Java:
public static boolean isNetworkAvailable () {
Runtime runtime = Runtime.getRuntime();
try {
Process ipProcess = runtime.exec("/system/bin/ping -c 1 8.8.8.8");
int exitValue = ipProcess.waitFor();
return (exitValue == 0);
} catch (IOException e){
e.printStackTrace();
} catch (InterruptedException e){
e.printStackTrace();
}
return false;
}