2017-05-28 7 views
-5

Es gibt viele Schaltflächen in einer Aktivität. Wenn Sie auf die einzelnen Schaltflächen klicken, werden verschiedene Aktivitäten geöffnet. Wenn wir die App schließen und erneut öffnen, müssen wir die zuletzt geöffnete Aktivität erhalten.Listenansicht Klicken Sie auf eine Aktivität und speichern Sie die Aktivität

+2

Willkommen bei SO. Was versuchst du zu sagen? –

+0

In einer Aktivität gibt es viele Schaltflächen. Wenn Sie auf die einzelnen Schaltflächen klicken, werden verschiedene Aktivitäten geöffnet. Wenn wir die App schließen und erneut öffnen, müssen wir die zuletzt geöffnete Aktivität erhalten. –

+0

OK, dann speichern Sie die ID/Referenz der zuletzt geöffneten Aktivität auf eine Präferenz und überprüfen Sie dann jedes Mal die Präferenz, wenn Ihre App geladen wird. Wenn die Präferenz diese Aktivitäts-ID enthält, dann zeige sie, sonst zeige andere Aktivität. –

Antwort

2

Um das zu erreichen, was Sie beschrieben Sie einfach die letzte sichtbare Aktivität in SharedPreferences speichern kann und haben eine Dispatcher Aktivität, die nach den Vorlieben der letzten Aktivität beginnt.

in jeder Aktivität möchten Sie automatisch neu starten:

@Override 
protected void onPause() { 
    super.onPause(); 

    SharedPreferences prefs = getSharedPreferences("X", MODE_PRIVATE); 
    Editor editor = prefs.edit(); 
    editor.putString("lastActivity", getClass().getName()); 
    editor.commit(); 
} 

Und Dispatcher Aktivität ähnlich der folgenden:

public class Dispatcher extends Activity { 

    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 

     Class<?> activityClass; 

     try { 
      SharedPreferences prefs = getSharedPreferences("XYZ", MODE_PRIVATE); 
      activityClass = Class.forName(
       prefs.getString("lastActivity", Activity1.class.getName())); 
     } catch(ClassNotFoundException ex) { 
      activityClass = Activity1.class; 
     } 

     startActivity(new Intent(this, activityClass)); 
    } 
} 

Sie können auch versuchen, diese in Ihrem Manifest (nur diese auch prüfen),

<activity 
android:name=".MainActivity" 
android:alwaysRetainTaskState="true" 
android:exported="true" 
. 
. 
. 

NB: Die Dispatcher-Aktivität muss natürlich auf sein, die android.intent.action.MAIN Aktion

Wenn die oben nicht funktioniert, versuchen diese auch:

 @Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    if ((getIntent().getFlags() & Intent.FLAG_ACTIVITY_BROUGHT_TO_FRONT) != 0) { 
     // Activity was brought to front and not created, 
     // Thus finishing this will get us to the last viewed activity 
     finish(); 
     return; 
    } 

    // Regular activity creation code... 
} 
+0

Sir E-Mail-ID Onnu Trumo? –

+0

Hey Shabab, ich bin auch Arbeiter. Ich wollte dir nur helfen, indem du eine Probe gibst. –

+0

versuchen Sie sich zuerst, wenn es nicht funktioniert. Informiere mich. –

Verwandte Themen