Empfänger falsch angemeldet? Android, KotlinAndroid

Forum für diejenigen, die für Android programmieren
Anonymous
 Empfänger falsch angemeldet? Android, Kotlin

Post by Anonymous »

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):

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)
}
}
Der Empfänger (unten) empfängt jedoch nichts (Protokoll erscheint nicht):

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())
}
}
Ich vermute, dass der Empfänger möglicherweise falsch registriert ist. Laut Tutorials sollte dies funktionieren:

Code: Select all

registerReceiver(
timeReceiver, IntentFilter(TimerService.TIMER_UPADATED)
)
Aber diese Implementierung von registerReceiver scheint jetzt veraltet zu sein und beim Debuggen scheint dies die richtige Version zu sein:

Code: Select all

registerReceiver(
requireContext(), updateTime, IntentFilter(TimerService.TIMER_UPADATED),
ContextCompat.RECEIVER_NOT_EXPORTED
)
Letzteres wird nicht empfangen.
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

Quick Reply

Change Text Case: 
   
  • Similar Topics
    Replies
    Views
    Last post