在x分钟后安卓连接wifi并在x分钟后断开连接。现在重复一遍

时间:2012-12-03 11:14:39

标签: android

Service我想为BroadcastReceiver

注册android.net.wifi.WIFI_STATE_CHANGED
public void onCreate() {
        super.onCreate();

        final IntentFilter filter = new IntentFilter("android.net.wifi.WIFI_STATE_CHANGED");      

        MyReceiver myreceiver = new MyReceiver();

        // Register the receiver so that your service will listen for broadcast
        registerReceiver(myreceiver , filter);      

一切都很好并且工作但是在wifi状态已经改变之后例如断开连接我想要在5分钟内再次激活1分钟然后再次断开连接。并在5分钟后再次激活1分钟。通常在5分钟后连接1分钟并再次断开连接......

我尝试使用AlarmManager,但我遇到问题如何在5分钟后连续1分钟后再连接,然后断开连接。

我的代码不是我尝试做的。它没有连接然后断开连接:

AlarmManager alarmMgr = (AlarmManager)getSystemService(Context.ALARM_SERVICE);
            Intent alarmIntent = new Intent(this, WifiReceiver.class);
            PendingIntent pendingAlarmIntent = PendingIntent.getBroadcast(getApplicationContext(), 0, alarmIntent, 0);

            // start in 5 minutes and rest in 1 minutes interval
            alarmMgr.setRepeating(AlarmManager.ELAPSED_REALTIME_WAKEUP, 5*60*1000, 1*60*1000,  pendingAlarmIntent);

我该怎么做?我是AlarmManager正确的方法

1 个答案:

答案 0 :(得分:1)

使用一些计时器在您的服务中执行...

boolean delayedAgain = false;
long newDelayedTimeFromNow;
private Handler mHandlerTime = new Handler();
////////////////////// 
Runnable  mUpdateTimeTask = new Runnable() {             
    public void run() {
        if(delayedAgain)
        {

        }
        else
        {

    }
}; 
///to start timer 
      mHandlerTime.removeCallbacks(mUpdateTimeTask);
      mHandlerTime.postDelayed(mUpdateTimeTask, gps_interval); 

所以你可以确定一个计时器,持续5分钟,开启WIFI,其他6分钟,关闭...玩布尔dealyedAgain 使其成为... f.e.第一次出局时5分钟将bool改为true,第二次出现时运行ti if(.. == true)