要检测互联网是否已连接,我使用以下代码:
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;
}
}
哪种工作完全正常。
但是我想知道当应用程序从服务器下载一些文件时,互联网连接是否会消失(我的意思是介于这个过程之间)是否有检测到并显示互联网连接丢失或弱的情况?
答案 0 :(得分:4)
您必须在所有BroadcastReceiver
中使用Activities
。我最终为此写了一个超级课程。
现在,每当我写App
时,我都不会扩展Activity
,我总是扩展一个我创建的虚拟类MyActivity
。这样,只要需求发生变化,我只会更改MyActivity
并更新所有类。
对于您的特定情况,我编写了一个可在以下位置获得的超类:https://github.com/sfarooq/A-droid-lib/
查看ConnectedActivity
包中的network
类。它会在连接丢失时显示一个对话框,并在连接恢复时将其解除。要使用它,只需在您想要的ConnectedActivity
中扩展Activities
即可。要在整个应用程序中使用它,我建议如上所述制作自己的超类,并扩展ConnectedActivity
以便以后可以更改内容(如果您想稍后添加自定义对话框和菜单也很有帮助,那么'' ll只需要将它添加到你的超类中。)
答案 1 :(得分:2)
有特殊的系统操作,通知应用程序有关更改Internet访问状态的信息。要获得它,您需要创建BroadcastReceiver
。
有关详细信息,请参阅this问题。