ich eine Warnung in meinem logcat haben:Art: Überprüfung der X nahm Y ms
W/art: Verification of void com.myapp.LoginFragment$override.lambda$logIn$5(com.myapp.LoginFragment, java.lang.Throwable) took 217.578ms
Hier ist der Code:
subscription = viewModel.logIn()
.observeOn(AndroidSchedulers.mainThread())
.subscribe(
this::showStudioSelection,
error -> {
ErrorResponse errorResponse = ErrorResponseFactory.create(error);
if (errorResponse.code() == ApiResult.BAD_REQUEST) {
Snackbar.make(getView(), R.string.login_bad_credentials, Snackbar.LENGTH_LONG)
.setAction(android.R.string.ok, v -> {})
.show();
} else {
Snackbar.make(getView(), "Unknown error " + errorResponse.code(), Snackbar.LENGTH_LONG)
.setAction(android.R.string.ok, v -> {})
.show();
}
viewModel.updateLoginButtonState();
}
);
220ms ist ziemlich viel (und ich fühle mich wie ich bemerke eine Verzögerung beim Start dieses Fragments.
Ich benutze RxJava und RetroLambda, aber dies ist nicht der einzige Ort, an dem diese Nachricht erscheint, so dass ich glaube nicht, dass es direkt verwandt ist.
Wie kann ich die Überprüfungszeit beeinflussen? Ist es das überhaupt wert?
Es scheint, wie es etwas mit zyklomatische Komplexität zu tun hat, da ich durch das Entfernen der Snackbar.make
Anrufe in den if
mit etwas mehr trocken Code des waring loswerden kann:
String errorMessage;
if (errorResponse.code() == ApiResult.BAD_REQUEST) {
errorMessage = getString(R.string.login_bad_credentials);
} else {
errorMessage = "Unknown error " + errorResponse.code();
}
vielen Dank für den Artikel, sie werde – Lovis
ich das sehe Besuche Nachricht * jedes Mal * die App läuft, nicht nur beim ersten Mal. Ich sehe die Nachricht, beende die App, starte sie erneut und sehe die Nachricht erneut. – zyamys