[英]How to know that internet connection is there or not?
要檢測互聯網是否已連接,我使用以下代碼:
public boolean netConnect(Context ctx)
{
ConnectivityManager cm;
NetworkInfo info = null;
try
{
cm = (ConnectivityManager) ctx.getSystemService(Context.CONNECTIVITY_SERVICE);
info = cm.getActiveNetworkInfo();
}
catch (Exception e)
{
e.printStackTrace();
}
if (info != null)
{
return true;
}
else
{
return false;
}
}
哪個工作得很好。
但我想知道,當應用程序從服務器下載一些文件時,互聯網連接是否會消失(我的意思是介於這個過程之間)是否有檢測到並顯示互聯網連接丟失或弱的情況?
您必須在所有Activities
使用BroadcastReceiver
。 我最終為此寫了一個超級課程。
現在,每當我編寫一個App
我都不會擴展Activity
,我總是擴展一個我創建的虛擬類,說MyActivity
。 這樣,只要需求發生變化,我只會更改MyActivity
並更新所有類。
對於您的特定情況,我編寫了一個超類,可從以下網址獲得: https : //github.com/sfarooq/A-droid-lib/查看network
包中的ConnectedActivity
類。 它會在連接丟失時顯示一個對話框,並在連接恢復時將其解除。 要使用它,只需在所需的Activities
擴展ConnectedActivity
。 要在整個應用程序中使用它,我建議如上所述制作自己的超類,並擴展ConnectedActivity
以便以后能夠更改內容(如果您想稍后添加自定義對話框和菜單也很有用,您只需要將它添加到你的超級班級)。
有特殊的系統操作,通知應用程序有關更改Internet訪問狀態的信息。 要獲得它,您需要創建BroadcastReceiver
。 有關詳細信息,請參閱此問題。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.