2016-06-20 17 views
0

Es gibt 2 Aktivitäten. A und B.SingleTask Aktivität android + diese Aktivität neu erstellen

Erste Aktivität ist ein (es mit einem paar Sachen aus de Bundle des Intent ...

A konfiguriert wird -> B B-> A (Start neue Aktivität, nicht onBackPressed ()). Aktivität A muss neu erstellt werden, Intents Bundle wurde geändert. Es muss auch singleTask sein.

B bis A sollte eine Aktivität erstellen, ich möchte nicht die onResume() von Aktivität A.

verwenden

EDIT: Es ist wie whatsapp. Sie befinden sich in einer Gruppe-> Einstellungen-> InfoGroup-> Mitglied klicken-> Nachricht senden Es startet die gleiche Aktivität (Chat-Aktivität), aber wenn Sie zurückgehen, ist die Gruppen-Chat-Aktivität nicht vorhanden.

Irgendeine Idee?

+0

Warum Sie SingleTask in erster Linie verwenden? Es hört sich so an, als ob das nicht das ist, was du willst. – DeeV

+0

CLEAR_TOP Flag kann hilfreich sein –

+0

@DeeV, weil ich nur 1 "A" Aktivität benötigen. – Borja

Antwort

0

Ich bin mir nicht sicher, ob ich das Problem gut verstehen, aber man kann onNewIntent:

verwenden Wenn Sie nur Aktivität A für die Daten neu erstellen möchten, die Sie mit Bündel passieren, wenn Sie beginnen, von B können Sie Sie können überschreiben Sie onNewIntent Methode der Aktivität A, erhalten Bundle und machen Sie Ihre Mitarbeiter.

@Override 
protected void onNewIntent(Intent intent) { 
    super.onNewIntent(intent); 
    setIntent(intent); 
    initLayout(); 
} 

Ihre onCreate Methode kann wie folgt sein:

@Override 
public void onCreate(Bundle icicle){ 
    super.onCreate(icicle); 
    setContentView(R.id.your_layout); 
    // find views; 
    initLayout(); 
} 

public void initLayout(){ 
    final Bundle bundle = getIntent().getExtras(); 
    if(bundle != null){ 
     // init layout 
     // do other staff 
    } 
} 

Ich denke, dies ist der beste Weg ist, um Ihr Problem zu behandeln.

Viel Glück.

+0

Ich mache viel von Sachen im onCreate der Methode. Ich denke nicht, dass dies die beste Option ist ... – Borja

+0

Definieren Sie eine Methode für sie. hier bearbeite ich meinen Beitrag. – savepopulation

0

Verwenden Sie hierzu FLAG_ACTIVITY_CLEAR_TOP und in manifestlaunchMode Ihre Tätigkeit singleinstance

während von B gehen -> A, mit Klick-

+0

Nein, weil ich vielleicht mit onBackPressed zurückgehe und eine Aktivität würde getötet werden. – Borja

+0

@Borja siehe aktualisierte Antwort –

+0

es funktioniert nicht – Borja

Verwandte Themen