Код: Выделить всё
Activity
- Передача PendingIntent с Activity в AlarmManager
- Передача PendingIntent с помощью BroadcastReceiver
Который пытается запустить действие (здесь нет сбоя, но и нет действия показано) - Который пытается отобразить уведомление с помощью setFullScreenIntent (уведомление отображается, Activity — нет)
< li>Запускает службу переднего плана, которая отображает уведомление с помощью setFullScreenIntent (уведомление отображается, Activity нет)
Поэтому я больше не знаю, что попробовать. Я пробовал все варианты с разными флагами намерений, но ничего не произошло. Единственное, что работает, это если я использую PendingIntent с Activity и оставляю приложение открытым, Activity запустится (то же самое происходит при запуске из BroadcastReceiver.
Я не уверен, какой код поможет, поэтому я покажу передачу PendingIntent с помощью класса Activity:
Код: Выделить всё
Код: Выделить всё
val Context.alarmManager: AlarmManager
get() = this.getSystemService(Context.ALARM_SERVICE) as AlarmManager
fun setAlarm(context: Context, millis: Long) {
val alarmManager = context.alarmManager
if(!alarmManager.canScheduleExactAlarms()) {
return
}
val alarmActivity = Intent(context, AlarmActivity::class.java).also {
it.flags = Intent.FLAG_ACTIVITY_NEW_TASK
}
context.alarmManager.setAlarmClock(
AlarmManager.AlarmClockInfo(
millis,
PendingIntent.getActivity(context, 1, Intent(context, MainActivity::class.java), PendingIntent.FLAG_IMMUTABLE)
),
PendingIntent.getActivity(context, 2, alarmActivity, PendingIntent.FLAG_IMMUTABLE)
)
}
Код: Выделить всё
class AlarmActivity : ComponentActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
logd("on create alarm activity")
setTheme(android.R.style.Theme_DeviceDefault)
setContent {
MyTheme {
Box(modifier = Modifier.fillMaxSize()) {
Text("Alarm!!")
}
}
}
setTurnScreenOn(true)
}
}
Подробнее здесь: https://stackoverflow.com/questions/791 ... streceiver