2016-04-02 4 views
0

ich komme zurück verhindert Aktivität durch diesen Code anmelden:Prevent kommt zurück Aktivität einzuloggen nach pressign Schaltfläche zurück und wiederherstellen Anwendung von Hintergrund

Intent intent = new Intent(getApplicationContext(), MainActivity.class); 
finish(); //Finish Login Activity 
startActivity(intent); //start second Activity, 

Wenn der Benutzer auf dem zweite Aktivität ist und er drückte Home-Taste, App geht in den Hintergrund, und wenn er es wiederherstellt, erscheint die zweite Aktivität - es ist in Ordnung. Aber wenn Benutzer drücken Sie die Taste in der zweiten Aktivität, App ging in den Hintergrund und wenn er es wieder - die Login-Aktivität ist wieder erstellt und es ist auf Foregoround.

Was kann ich tun, um zu verhindern, dass Login-Aktivitäten erneut erstellt werden? Oder vielleicht sollte ich die Login-Aktivität nicht beenden und stattdessen sollte ich überprüfen, ob der Benutzer eingeloggt ist - Wenn ja, sollte ich die zweite Aktivität zeigen?

Manifest:

<application 
    android:allowBackup="true" 
    android:icon="@mipmap/ic_launcher" 
    android:label="@string/app_name" 
    android:supportsRtl="true" 
    android:theme="@style/AppTheme"> 
    <activity android:name=".LoginActivity"> 
     <intent-filter> 
      <action android:name="android.intent.action.MAIN" /> 

      <category android:name="android.intent.category.LAUNCHER" /> 
     </intent-filter> 
    </activity> 
    <activity android:name=".MainActivity"></activity> 
</application> 
+0

‚Vielleicht sollte ich nicht die Login-Aktivität beenden und stattdessen sollte ich prüfen, ob Benutzer angemeldet ist - Wenn ja, sollte die I zweite Aktivität zeigen‘. Du hast es selbst beantwortet. Tho, sollten Sie die Login-Aktivität beenden, denn wenn Sie dies nicht tun, könnte der Eindruck auf Ihren Benutzer, dass sie ausgeloggt worden sind. Benutze aber auch einen Scheck. –

+0

Dann sollte meine root-Aktivität LoginActivity sein, wie ich bereits habe und in dieser Aktivität überprüfen, ob der Benutzer angemeldet ist? Oder vielleicht meine Root-Aktivität sollte die MainActivity und dort in onCreate() -Methode überprüfen, ob Benutzer muss sich anmelden und in diesem Fall Aufruf Absicht zu LoginActivity? – Ryniu

Antwort

0

Was könnten Sie tun, ist die onBackPressed Methode wie folgt außer Kraft setzen:

@Override 
public void onBackPressed() 
{ 

} 

Und setzen, was auch immer Sie es in diesem Verfahren tun mögen. Hoffen, dass das für Sie arbeitet.

+0

Schön, ich bin froh, dass es für dich funktioniert hat. –

0

In der Manifest-Datei hinzufügen:

android:noHistory="true" 

auf die Login-Aktivität.

+0

Es tut dasselbe wie finish() Methode, so dass es in meinem Fall nicht funktioniert. – Ryniu

0

Versuchen Sie folgendes:

Intent intent = new Intent(this, MainActivity.class); 
    intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP | Intent.FLAG_ACTIVITY_CLEAR_TASK | Intent.FLAG_ACTIVITY_NEW_TASK); 
    startActivity(intent); 
    finish(); 
Verwandte Themen