2012-12-01 33 views
2

我已经找到很好的教程为处理屏幕关闭与电影意图:http://thinkandroid.wordpress.com/2010/01/24/handling-screen-off-and-screen-on-intents/检查,如果无线网络连接屏幕后每5分钟连接是断开

,但我想,后屏幕关闭时每5分钟的WiFi时,如果检查连接

ConnectivityManager connManager = (ConnectivityManager)context.getSystemService(Context.CONNECTIVITY_SERVICE); 
     NetworkInfo mWifi = connManager.getNetworkInfo(ConnectivityManager.TYPE_WIFI); 
wifi.isConnected() 

我想用alarm managerhttp://developer.android.com/reference/android/app/AlarmManager.html但我不知道如何检查每5分钟,如果是连接与否。

+0

使用等待5分钟后意图唤醒闹钟。 –

回答

2

首先声明一个定时器类似如下:

Timer timer = new Timer(); 

然后assing参数给计时器如下:

timer.scheduleAtFixedRate(new checkWifi, 0,50000); 

然后定义checkWifi任务如下:

class checkWifi extends TimerTask { 

     @Override 
     public void run() { 
     //here put the code that will check if the wifi is connected or not 
     ConnectivityManager connManager =   (ConnectivityManager)context.getSystemService(Context.CONNECTIVITY_SERVICE); 
     NetworkInfo mWifi = connManager.getNetworkInfo(ConnectivityManager.TYPE_WIFI); 
     wifi.isConnected() 
    } 
    }; 
+0

谢谢。我在哪里可以使用计时器。在广播接收机还是服务? – senzacionale

+0

任何一个人都可以,只要确保你放置timer.scheduleAtFixedRate(新的checkWifi,0,50000);代替你的兴趣 –

2

你的方法是蹩脚的,定时器是多余的。
只需创建WifiManager.NETWORK_STATE_CHANGED_ACTION的广播接收器。

+0

感谢ou,但这与时间无关。这不会帮助我检查它有史以来5分钟... – senzacionale

+0

是的,但每5分钟检查一次,当WiFi状态正在改变时您可以收到通知时没有任何意义。你应该描述你的用例来解释为什么需要中继定时器(显然你需要一个不同的原因)。 –

相关问题