2012-06-10 130 views
0

我想经常检查互联网连接,如果连接丢失,请关闭带有警告消息的应用程序。我怎样才能做到这一点?通过手机后台服务如果互联网连接丢失,请关闭应用程序

+0

http://stackoverflow.com/questions/3461227/how-to-know-device-is-connected-to-wifi-or-3g-programatically –

回答

1

检查Internet连接(如AlermManager服务),然后关闭应用程序,如果没有连接发现。

谢谢。

1
close the app 

不要试图杀死进程并且不推荐关闭应用程序的方式。在所有活动上调用finish()或调用moveTaskToBack(true)。

为解决方案 在这里你去。

您需要注册并处理广播接收器android.net.conn.CONNECTIVITY_CHANGE

步骤1

包括以下清单中

<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" /> 

第二步许可

允许Android硝酸钾w哪个班将注册BroadCast Receiver。

<receiver android:name="ConnectivityReceiver_package_name.ConnectivityReceiver"> 
    <intent-filter> 
     <action android:name="android.net.conn.CONNECTIVITY_CHANGE" /> 
    </intent-filter> 
</receiver> 

步骤3

把你的逻辑,各种网络的国家。

public class ConnectivityReceiver extends BroadcastReceiver { 

    @Override 
    public void onReceive(Context context, Intent intent) { 

    String action = intent.getAction(); 

    boolean noConnectivity = intent.getBooleanExtra(ConnectivityManager.EXTRA_NO_CONNECTIVITY,false); 

    if(noConnectivity){ 

     //Show Warning Message 
     //Close Application the way i suggested 
    } 

    } 

} 
+0

我尝试过,但不工作时,我关闭或打开互联网连接。我应该用“动作”变量做些什么?它似乎没有被使用。 –

+0

在if(noConnectivity){}块中放入了一些日志,并检查控制是否在块断开时断开互联网。 –

+0

我应该将ConnectivityReceiver作为内部类还是其他类?因为我遵循了所有的步骤,但它不适合我。 –

相关问题