2016-06-20 9 views
0

2つのアクティビティがあります。 > B B-> A(新しいアクティビティを開始し、onBackPressedない( - AとBSingleTaskアクティビティアンドロイド+そのアクティビティを再作成

最初のアクティビティは、(それがテントのデバンドルからいくつかのものを使用して構成されている...

Aであります)))アクティビティAのアクティビティを再作成する必要があり、インテントのバンドルが変更された場合、アクティビティAのonResume()は使用しません。

編集:これはwhatsappと同じです グループ - >設定 - > infoGroup->メンバーのクリック - >メッセージを送信します 同じアクティビティ(チャットアクティビティ)を開始しますが、グループチャットに戻るとアクティビティは存在しません。

+0

使用してクリックして、なぜあなたは最初の場所でSingleTaskを使用していますか?それはあなたが望むものではないように思えます。 – DeeV

+0

CLEAR_TOPフラグは役に立ちます –

+0

@DeeVなぜなら、私は1つの "A"アクティビティしか必要ないからです。 – Borja

答えて

0

は、私は私がよくあなたの問題を理解してかはわからないが、あなたはちょうどあなたがあなたができることができますBから起動したときにバンドルに渡すデータのアクティビティAを再作成したい場合は、onNewIntent:

を使用することができますアクティビティAのonNewIntentメソッドをオーバーライドし、バンドルを入手してスタッフを雇います。

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

あなたのonCreateメソッドは、このようなことができます:

@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 
    } 
} 

私は、これはあなたの問題を処理するための最良の方法だと思います。

Good Luck。

このため
+0

メソッドのonCreateにあるもののうちのどれか。私はこれが最良の選択だとは思わない... – Borja

+0

それらのためのメソッドを定義する。ここでは私の投稿を編集します。 – savepopulation

0

、使用FLAG_ACTIVITY_CLEAR_TOPとあなたの活動のmanifestlaunchModesingleinstance

でBから行っている間 - >

+0

いいえ、たぶん私はonBackPressedで戻ってきてAアクティビティが強制終了されるためです。 – Borja

+0

@Borja更新された回答を参照 –

+0

それは動作していません – Borja

関連する問題