[英]The screen freezes till the function returns
在將文件推送到數據庫之前,我需要使用代碼來檢查是否可以訪問互聯網。這是我正在使用的代碼。 如果我有互聯網連接,它就可以正常工作,但如果沒有,它會停頓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);
}
我希望它將文件(一個文件一個文件)推入數據庫,並且我想每次都檢查互聯網是否正常工作
要檢查用戶是否連接到互聯網,請使用此功能。
public boolean hasInternetConnection() {
ConnectivityManager manager = (ConnectivityManager) getSystemService(Context.CONNECTIVITY_SERVICE);
return manager.getActiveNetworkInfo() != null && manager.getActiveNetworkInfo().isConnected();
}
屏幕凍結,因為您正在主線程上執行長時間運行的任務(上傳文件),這可能導致您的應用程序無法響應。 您必須通過使用AsyncTask,RxJava或Coroutines(Kotlin)將操作移出主線程。 看到這個
Handler hander = new Handler(this);
handler.postDelayed(new Runnable() {
@Override
public void run() {
//do what you want
},2000L);
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.