2016-10-21 12 views
-2

私はアクティビティA、B、C、Dを持っています。アクティビティでは、いくつかのデータがリストにあります。私は、A-> B-> C-> Dと呼んだと私はD活動上の確認ボタンをクリックしたとき、私は、私は、このためにこのコードを使用A.に行く必要があります。再開したアクティビティのヌルデータ

Intent intent = new Intent(D.this,A.class); 
    intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP); 
    startActivity(intent); 

と活動Aは私のリストと呼ばれます、無効である。私はonSavedInstanceStateを使用しようとしますが、nullもあります。 どうすればいいですか?

+0

startActivityの代わりにstartActivityForResultを使用してください。 – Piyush

答えて

0

これは、A Activityが再作成されたためです。 > C - -

  • コールActivity S Dにfinish()方法> B、その後、Activityポップアップ:あなたはさまざまな方法から、それを行うことができます。

  • Activity Bからリストを渡し - > C - > D、その後、Activity A.

に再び渡し、それが役に立てば幸い!

1
**Solution 1.** 
    Intent intent = new Intent(D.this,A.class);  
    startActivity(intent); 
    finishAffinity(); 
Here "finishAffinity" will close all the activity and will create activity A. 

**Solution 2.** 
Intent intent = new Intent(D.this,A.class); 

     intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP | Intent.FLAG_ACTIVITY_NEW_TASK); 
     intent.putExtra("reloadHome", true); 
     startActivity(intent); 
     finish(); 

Check value on A activity to override "onNewIntent" 
If you will pass any value from activity D to A you can get that data into "onNewIntent" method. in this scenario. 

@Override 
    protected void onNewIntent(Intent intent) { 
     super.onNewIntent(intent); 
    } 
関連する問題