在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正确的方法
答案 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)