android - 单击按钮时警报管理器关闭

标签 android alarmmanager

我在按钮上设置了代码,设置警报管理器发送广播并激活设备上的 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);

    }

最佳答案

在 alarm.set(AlarmManager.RTC,milli,TurnWiFi);毫已经过去了
使用日历可降低复杂性。

这应该可以解决您的问题:
alarm.set(AlarmManager.RTC,System.currentTimeMillis() + milli,TurnWiFi);

更新:

解释:

If the stated trigger time is in the past, the alarm will be triggered immediately

AlarmManager.RTC(实时时钟)类型的触发器是以毫秒表示的一天中的时间。而 60000 毫秒实际上已经过去了。

根据文档,System.currentTimeMillis() + 60000 在接下来的 60 秒内关闭

System.currentTimeMillis()
Returns the current time in milliseconds since January 1, 1970 00:00:00.0 UTC.

关于android - 单击按钮时警报管理器关闭,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29321666/

相关文章:

android - MoPub - 广告加载失败

java.lang.IllegalArgumentException : Cannot create PhoneAuthCredential without either verificationProof, session 信息,或临时证明

java - 如何使用警报管理器设置通知

Android AlarManager 通知重复

Android AlarmManager,如何每3天发送一次 Intent ?

android - 使用 Alarmmanager 在特定时间启动服务

android - android studio 中的 : {Symbol: Fragment, 包 : android. support.v4.app} 目前无法提供示例

android studio gradle build编译报错

android - 当应用程序在 android 上关闭时,使用 alarmmanager 设置的 Asynctask 失败

android - 半透明状态栏在抽屉导航上保持其半透明阴影