Empfänger falsch angemeldet? Android, Kotlin
Posted: 06 Jan 2025, 05:38
Ich erstelle eine Android-App in Kotlin. Die App enthält eine Stoppuhr. Ich habe eine Serviceklasse (TimerService), die jede Sekunde eine Aufgabe korrekt ausführt (Protokoll wird angezeigt):
Der Empfänger (unten) empfängt jedoch nichts (Protokoll erscheint nicht):
Ich vermute, dass der Empfänger möglicherweise falsch registriert ist. Laut Tutorials sollte dies funktionieren:
Aber diese Implementierung von registerReceiver scheint jetzt veraltet zu sein und beim Debuggen scheint dies die richtige Version zu sein:
Letzteres wird nicht empfangen.
SDK in der build.gradle-Datei:
Code: Select all
private inner class MyTask(private var time: Double) : TimerTask() {
override fun run(){
Log.d("SERVICE", time.toString())
val intent = Intent(TIMER_UPADATED)
time++
intent.putExtra(TIME_EXTRA, time)
sendBroadcast(intent)
}
}
Code: Select all
registerReceiver(
timeReceiver, IntentFilter(TimerService.TIMER_UPADATED)
)
private val timeReceiver: BroadcastReceiver = object : BroadcastReceiver() {
override fun onReceive(context: Context, intent: Intent) {
time = intent.getDoubleExtra(TimerService.TIME_EXTRA, 0.0)
Log.d("RECEIVER", time.toString())
}
}
Code: Select all
registerReceiver(
timeReceiver, IntentFilter(TimerService.TIMER_UPADATED)
)
Code: Select all
registerReceiver(
requireContext(), updateTime, IntentFilter(TimerService.TIMER_UPADATED),
ContextCompat.RECEIVER_NOT_EXPORTED
)
SDK in der build.gradle-Datei:
Code: Select all
android {
namespace = "com.myapp.myapp"
compileSdk = 34
defaultConfig {
applicationId = "com.myapp.myapp"
minSdk = 33
targetSdk = 34