我在一个按钮上设置了代码,该按钮设置警报管理器发送广播并激活设备上的WiFi。我已将延迟设置为1分钟但代码但是一旦我点击按钮
,闹钟就会响起这是按钮上的代码:
public void start(View view){
AlarmManager alarm = (AlarmManager) getSystemService(ALARM_SERVICE);
Intent intent1 = new Intent(this,MyReceiver.class);
PendingIntent TurnWiFi = PendingIntent.getBroadcast(getApplicationContext(), 0, intent1, 0);
long milli = 60000;
alarm.set(AlarmManager.RTC,milli,TurnWiFi);
}
Receiver中的代码:
public class MyReceiver extends BroadcastReceiver{
@Override
public void onReceive(Context context, Intent intent) {
Log.i("BroadcastReceiver","------------>In on receive method<-------------");
WifiManager wifi_man = (WifiManager) context.getSystemService(Context.WIFI_SERVICE);
wifi_man.setWifiEnabled(true);
}
答案 0 :(得分:1)
(AlarmManager.RTC,milli,TurnWiFi);毫米已经通过了 使用日历以降低复杂性。
这应该可以解决你的问题:
alarm.set(AlarmManager.RTC,System.currentTimeMillis() + milli,TurnWiFi);
更新:
说明:
如果声明的触发时间是过去的,则会立即触发警报
AlarmManager.RTC(实时时钟)类型的触发器是以毫秒为单位的时间。和60000毫安实际上是在过去。
根据文件,System.currentTimeMillis()+ 60000在接下来的60秒内熄灭
System.currentTimeMillis的()
返回自1970年1月1日00:00:00.0 UTC以来的当前时间(以毫秒为单位)。