Android: ContentResolver addStatuschangelistener funktioniert nicht in Jetpack ComposeAndroid

Forum für diejenigen, die für Android programmieren
Anonymous
 Android: ContentResolver addStatuschangelistener funktioniert nicht in Jetpack Compose

Post by Anonymous »

Ich versuche, meinen alten Code in Jetpack Compose neu zu schreiben, aber ich habe Probleme mit ContentResolver.AddStatuschAngelistener, der keine Synchronisierungsereignisse abfeuert. Ich verwende dieselbe Geschäftslogik (ViewModel, Repository) für sowohl klassische Benutzeroberfläche als auch komponieren, aber im Komponieren funktioniert es nicht.
Hier ist der klassische UI -Code:
private var syncStatusHandle: Any? = null

override fun onResume() {
super.onResume()
syncStatusHandle = ContentResolver.addStatusChangeListener(
ContentResolver.SYNC_OBSERVER_TYPE_ACTIVE or ContentResolver.SYNC_OBSERVER_TYPE_PENDING
)
{
Timber.d("sync event fired")
}
}

override fun onPause() {
super.onPause()
if (syncStatusHandle != null) {
ContentResolver.removeStatusChangeListener(syncStatusHandle)
}
}
< /code>
Und hier ist, wie es in Kompose aussieht (es ist so ziemlich der gleiche Ansatz, wie in den Dokumenten erwähnt: Interoperabilitäts -APIs): < /p>
@Composable
fun SyncStatusManager(
onSyncEvent: (count: Int) -> Unit
) {
val context = LocalContext.current
val currentOnSyncEvent by rememberUpdatedState(onSyncEvent)
DisposableEffect(context) {
val syncStatusHandle = ContentResolver.addStatusChangeListener(
ContentResolver.SYNC_OBSERVER_TYPE_ACTIVE or ContentResolver.SYNC_OBSERVER_TYPE_PENDING
)
{
currentOnSyncEvent(it)
}

onDispose {
ContentResolver.removeStatusChangeListener(syncStatusHandle)
}
}
}
< /code>
und es wird in verschiedenen komponierbaren wie folgt verwendet: < /p>
SyncStatusManager {
Timber.d("sync event should be fired, but it's not")
}
< /code>
Ich habe versucht, StartEffect zu verwenden oder überhaupt nicht, aber kein Erfolg. Wenn ich die Synchronisation auslöste, sollte der Rückruf sofort abfeuern, aber es nicht.
Fehlt mir etwas? Ich bin neu bei Jetpack Compose. Vielen Dank an
(in beiden Fällen werden die erforderlichen Berechtigungen erteilt) < /p) < /p>

Quick Reply

Change Text Case: 
   
  • Similar Topics
    Replies
    Views
    Last post