by Anonymous » 12 Sep 2025, 06:46
Um die Live -Daten für Signale zu verarbeiten, habe ich die folgenden Klassen signalsViewModel definiert. Wenn ich die Funktion updatesignals aufrufe, bleibt sie hängen und führt nicht den nächsten Befehl aus.
Code: Select all
signalsViewModel = new ViewModelProvider(this).get(SignalsViewModel.class);
< /code>
Wenn ich die Live -Daten festlegt, bleibt die App in der folgenden Funktion hängen und führt nicht den nächsten Befehl aus. < /p>
// Get Stuck here.
signalsViewModel.updateSignals(booleen);
// Doesn't run the following command
sendNextRequest();
< /code>
Hier ist die Klassendefinition von SignalsViewModel. < /p>
import androidx.lifecycle.LiveData;
import androidx.lifecycle.MutableLiveData;
import androidx.lifecycle.ViewModel;
import java.util.Arrays;
public class SignalsViewModel extends ViewModel {
private final MutableLiveData signals = new MutableLiveData(new boolean[4]);
/**
* Returns a LiveData that observers can watch.
*/
public LiveData getSignals() {
return signals;
}
/**
* Updates the signals. Observer only notified if values actually changed.
*/
public void updateSignals(boolean[] newSignals) {
if (newSignals == null || newSignals.length != 4) {
throw new IllegalArgumentException("Signals array must have exactly 4 elements.");
}
boolean[] oldSignals = signals.getValue();
if (!Arrays.equals(oldSignals, newSignals)) {
// Make a copy to prevent external modification
signals.setValue(Arrays.copyOf(newSignals, newSignals.length));
}
}
}
Um die Live -Daten für Signale zu verarbeiten, habe ich die folgenden Klassen signalsViewModel definiert. Wenn ich die Funktion updatesignals aufrufe, bleibt sie hängen und führt nicht den nächsten Befehl aus.[code]signalsViewModel = new ViewModelProvider(this).get(SignalsViewModel.class);
< /code>
Wenn ich die Live -Daten festlegt, bleibt die App in der folgenden Funktion hängen und führt nicht den nächsten Befehl aus. < /p>
// Get Stuck here.
signalsViewModel.updateSignals(booleen);
// Doesn't run the following command
sendNextRequest();
< /code>
Hier ist die Klassendefinition von SignalsViewModel. < /p>
import androidx.lifecycle.LiveData;
import androidx.lifecycle.MutableLiveData;
import androidx.lifecycle.ViewModel;
import java.util.Arrays;
public class SignalsViewModel extends ViewModel {
private final MutableLiveData signals = new MutableLiveData(new boolean[4]);
/**
* Returns a LiveData that observers can watch.
*/
public LiveData getSignals() {
return signals;
}
/**
* Updates the signals. Observer only notified if values actually changed.
*/
public void updateSignals(boolean[] newSignals) {
if (newSignals == null || newSignals.length != 4) {
throw new IllegalArgumentException("Signals array must have exactly 4 elements.");
}
boolean[] oldSignals = signals.getValue();
if (!Arrays.equals(oldSignals, newSignals)) {
// Make a copy to prevent external modification
signals.setValue(Arrays.copyOf(newSignals, newSignals.length));
}
}
}
[/code]