Okay, der Titel ist ein bisschen komisch. Meine App startet unter SplashScreenActivity
, die 3 Sekunden lang angezeigt wird und die SignInActivity
startet, damit der Benutzer sich anmelden kann. Durch Klicken auf eine nextButton
auf der SignInActivity
startet die MainActivity
.Absicht zu MainActivity startet die aktuelle Aktivität wieder
Das Problem ist, dass nach dem Start, als ich die nextButton
klicken Sie die SignInActivity
relauncht und auf das nextButton
ein zweites Mal bringt mich zum MainActivity
, die völlig fremd ist. Wenn ich die SignInActivity
mit einer anderen Methode starte und auf die nextButton
klicke, komme ich ohne Probleme direkt zur MainActivity
. Ich habe meinen Code oben und unten durchgesehen und habe keine Ahnung, was dieses Problem verursachen könnte.
Hier ist der entsprechende Code
nextButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
if (isLoggedIn) {
sharedPreferences.edit().putBoolean("isLoggedIn", true).apply();
Log.d("TAG", "Logged in Shared Preferences Set");
startActivity(new Intent(SignInActivity.this, MainActivity.class));
finish();
} else {
sharedPreferences.edit().putBoolean("isLoggedIn", false).apply();
Log.d("TAG", "Not Logged in Shared Preferences Set");
startActivity(new Intent(SignInActivity.this, MainActivity.class));
Toast.makeText(SignInActivity.this, "Sign In was Skipped", Toast.LENGTH_SHORT).show();
finish();
}
}
});
Interessanter ich aus der startActivity()
Methode kommentiert, um zu sehen, ob es die Aktivität neu aufgelegt, aber es kam nicht. Was ist hier falsch?
Update: Lifecycle-Protokoll -> Keine Ahnung, warum SignInActivity
im ersten Fall nicht zerstört wird und wodurch die Aktivität neu erstellt wird.
(nicht entweder über Facebook oder Google + angemeldet)
10-27 00:46:20.549 22392-22392/com.dhyanfoundation.vedicchants D/Log: SignInActivity Created
10-27 00:46:21.464 22392-22392/com.dhyanfoundation.vedicchants D/Log: handleSignInResult:false
10-27 00:46:29.593 22392-22392/com.dhyanfoundation.vedicchants D/Log: Not Logged in Shared Preferences Set
10-27 00:46:29.692 22392-22392/com.dhyanfoundation.vedicchants D/Log: MainActivity Created
10-27 00:46:30.049 22392-22392/com.dhyanfoundation.vedicchants D/Log: SignInActivity Created
10-27 00:46:30.211 22392-22392/com.dhyanfoundation.vedicchants D/Log: handleSignInResult:false
10-27 00:46:30.473 22392-22392/com.dhyanfoundation.vedicchants D/Log: SignInActivity Destroyed
10-27 00:46:48.274 22392-22392/com.dhyanfoundation.vedicchants D/Log: Not Logged in Shared Preferences Set
10-27 00:46:48.674 22392-22392/com.dhyanfoundation.vedicchants D/Log: SignInActivity Destroyed
(Angemeldete via Login facebook gecached)
10-27 00:51:17.411 28298-28298/com.dhyanfoundation.vedicchants D/Log: SignInActivity Created
10-27 00:51:20.378 28298-28298/com.dhyanfoundation.vedicchants D/Log: Logged in Shared Preferences Set
10-27 00:51:20.438 28298-28298/com.dhyanfoundation.vedicchants D/Log: MainActivity Created
10-27 00:51:20.701 28298-28298/com.dhyanfoundation.vedicchants D/Log: SignInActivity Created
10-27 00:51:21.100 28298-28298/com.dhyanfoundation.vedicchants D/Log: SignInActivity Destroyed
10-27 00:51:26.960 28298-28298/com.dhyanfoundation.vedicchants D/Log: Logged in Shared Preferences Set
10-27 00:51:27.326 28298-28298/com.dhyanfoundation.vedicchants D/Log: SignInActivity Destroyed
(Angemeldete über Google+ gecached Login)
10-27 00:53:29.039 30454-30454/com.dhyanfoundation.vedicchants D/Log: SignInActivity Created
10-27 00:53:33.133 30454-30454/com.dhyanfoundation.vedicchants D/Log: handleSignInResult:true
10-27 00:53:44.096 30454-30454/com.dhyanfoundation.vedicchants D/Log: Logged in Shared Preferences Set
10-27 00:53:44.204 30454-30454/com.dhyanfoundation.vedicchants D/Log: MainActivity Created
10-27 00:53:44.565 30454-30454/com.dhyanfoundation.vedicchants D/Log: SignInActivity Created
10-27 00:53:44.954 30454-30454/com.dhyanfoundation.vedicchants D/Log: SignInActivity Destroyed
10-27 00:53:45.358 30454-30454/com.dhyanfoundation.vedicchants D/Log: handleSignInResult:true
10-27 00:53:52.674 30454-30454/com.dhyanfoundation.vedicchants D/Log: Logged in Shared Preferences Set
10-27 00:53:53.120 30454-30454/com.dhyanfoundation.vedicchants D/Log: SignInActivity Destroyed
Ich habe eine neue leere Aktivität erstellt und die MainActivity
durch BlankActivity
mit ersetzt n der nextButton
Klick-Methode und alles war in Ordnung. Hier ist das Lifecycle-Protokoll:
10-27 00:56:19.538 1502-1502/com.dhyanfoundation.vedicchants D/Log: SignInActivity Created
10-27 00:56:22.116 1502-1502/com.dhyanfoundation.vedicchants D/Log: handleSignInResult:false
10-27 00:56:24.747 1502-1502/com.dhyanfoundation.vedicchants D/Log: Not Logged in Shared Preferences Set
10-27 00:56:24.849 1502-1502/com.dhyanfoundation.vedicchants D/Log: BlankActivity Created
10-27 00:56:25.244 1502-1502/com.dhyanfoundation.vedicchants D/Log: SignInActivity Destroyed
Können Sie den Code für SplashScreen posten? –
wo haben Sie isLoggedIn initialisiert? – USKMobility
Fügen Sie den Lebenszyklusmethoden in jeder 'Aktivität' eine Protokollierung hinzu. Das könnte Ihnen ein besseres Verständnis dafür geben, was vor sich geht. Ich sehe nicht, wie "SignInActivity" die "SignInActivity" basierend auf dem von Ihnen geposteten Code starten kann. –