问题描述
我希望通知在特定时间每隔几个小时弹出一次。我必须为此使用JobSchedule吗?
这是我的AlarmReciver
class AlarmReceiver: BroadcastReceiver() {
companion object {
const val ID = "CHANEL_ID"
const val chanelName = "CHANEL_NAME"
}
override fun onReceive(context: Context?,intent: Intent?) {
val manager = context?.getSystemService(Context.NOTIFICATION_SERVICE) as NotificationManager
val channelNotification: NotificationCompat.Builder = NotificationCompat.Builder (context,ID)
.setContentTitle("Powiadomienie!")
.setContentText("Weź tabletkę!")
.setSmallIcon(R.drawable.ic_launcher_background)
val channel = NotificationChannel(ID,chanelName,NotificationManager.IMPORTANCE_HIGH)
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {
manager.createNotificationChannel(channel)
manager.notify(1,channelNotification.build())
}
}
这是我的 MainActivity
class MainActivity : AppCompatActivity(),TimePickerDialog.OnTimeSetListener,DatePickerDialog.OnDateSetListener {
private var minute = 0
private var hour = 0
private var dayOfMonth = 0
private var month = 0
private var year = 0
private lateinit var alarmManager: AlarmManager
private lateinit var alarmIntent: PendingIntent
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
alarmManager = getSystemService(Context.ALARM_SERVICE) as AlarmManager
alarmIntent = PendingIntent.getBroadcast(applicationContext,Intent(applicationContext,AlarmReceiver::class.java),0)
btn.setOnClickListener {
val dialog = MyTimePickerDialog()
dialog.show(supportFragmentManager,"time_picker")
}
btnDate.setOnClickListener {
val dialog = MyDatePickerDialog()
dialog.show(supportFragmentManager,"date_picker")
}
btninfo.setOnClickListener {
val date = Calendar.Builder()
.setDate(year,month,dayOfMonth)
.setTimeOfDay(hour,minute,0)
.build()
Toast.makeText(applicationContext,"$year-${month+1}-$dayOfMonth//$hour:$minute",Toast.LENGTH_SHORT).show()
alarmManager.set(AlarmManager.RTC_WAKEUP,date.timeInMillis,alarmIntent)
}
}
override fun onTimeSet(view: TimePicker?,hourOfDay: Int,minute: Int) {
this.minute = minute
this.hour = hourOfDay
}
override fun onDateSet(view: DatePicker?,year: Int,month: Int,dayOfMonth: Int) {
this.year = year
this.month = month
this.dayOfMonth = dayOfMonth
}
}
我的JobService类
class MyJobService: JobService() {
override fun onStartJob(p0: JobParameters?): Boolean {
TODO("Not yet implemented")
}
override fun onStopJob(p0: JobParameters?): Boolean {
TODO("Not yet implemented")
}
}
我该如何实现,以便不时弹出在不同类中创建的通知?
感谢gelp
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)