【问题标题】:Why is setAlarmClock not working for me in my dialog fragment?为什么 setAlarmClock 在我的对话框片段中对我不起作用?
【发布时间】:2022-09-27 13:55:59
【问题描述】:

我正在尝试设置一个 android 警报管理器 alarmMgr?.setAlarmClock 。我的 recyclerview 适配器底部有代码。设置闹钟效果很好。但是在我的对话框片段中,顶部的代码,每当我点击按钮关闭对话框片段并设置警报时,它都不起作用。我没有收到错误或任何东西。这是我使用错误上下文的上下文问题吗?或者有人有什么想法吗?

        //the below in my dialog fragment will not set an internal alarm
        var alarmIntent: Intent
        var alarmPendingIntent: PendingIntent
        alarmIntent = Intent(rootView.context, AlarmReceiver::class.java)
        alarmIntent.putExtra(\"alarmTimeEntityId\", 0)
        alarmPendingIntent = PendingIntent.getActivity(rootView.context, 0, alarmIntent, PendingIntent.FLAG_IMMUTABLE or PendingIntent.FLAG_UPDATE_CURRENT)
        alarmPendingIntent = alarmPendingIntent.let { intent ->
            PendingIntent.getBroadcast(rootView.context, 0, alarmIntent, PendingIntent.FLAG_IMMUTABLE or PendingIntent.FLAG_UPDATE_CURRENT)
        }
  

        var trig: AlarmManager.AlarmClockInfo =
            AlarmManager.AlarmClockInfo(calendar.timeInMillis, alarmPendingIntent)
        alarmMgr?.setAlarmClock(
            trig,
            alarmPendingIntent
        )

    
        //below works to set alarm, is in recylerview adapter
      var alarmTimeEntity: AlarmTimeEntity
      var alarmIntent: Intent
      var alarmPendingIntent: PendingIntent   
      
       alarmIntent = Intent(context, AlarmReceiver::class.java)
       alarmIntent.putExtra(\"alarmTimeEntityId\", alarmTimeEntity.alarmTimeId)
       alarmPendingIntent = PendingIntent.getActivity(context, 0, alarmIntent, 
PendingIntent.FLAG_IMMUTABLE or PendingIntent.FLAG_UPDATE_CURRENT)
        alarmPendingIntent = alarmPendingIntent.let { intent ->
        PendingIntent.getBroadcast(context, 0, alarmIntent, PendingIntent.FLAG_IMMUTABLE 
 or PendingIntent.FLAG_UPDATE_CURRENT)
        }


        var trig: AlarmManager.AlarmClockInfo =
            AlarmManager.AlarmClockInfo(calendar.timeInMillis, alarmPendingIntent)
        alarmMgr?.setAlarmClock(
            trig,
            alarmPendingIntent
        )

    标签: android kotlin android-recyclerview setalarmclock


    【解决方案1】:

    我没有正确初始化警报管理器对象。 我有私人 var alarmMgr: AlarmManager? = null 来声明它。但是在设置警报以使其工作之前,我还需要在某个时候将 alarmMgr = this.getSystemService(Context.ALARM_SERVICE) 作为 AlarmManager! clutz 移动。我一直这样做。如果其他人需要它,它就在那里!

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2022-07-30
      • 1970-01-01
      • 1970-01-01
      • 2017-12-12
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多