2012-12-26 26 views
0

我在我的應用程序中使用singleTask活動。 訂單活動A-> B-> C-> B 我把額外的A放在B上,然後把它放在B上,然後我去C並且嘗試putExtra用於B,但是在B上我沒有看到它。我不能發送額外的singleTask活動Android

如果我使用默認android:launchMode,它工作正常。

+1

嘗試檢查onNewInten方法B活性http://developer.android.com/guide/components/tasks-and-back-stack.html#ManifestForTasks –

+1

請POST代碼 –

+0

用於獲取不使用putExtra,而是使用B –

回答

1

你必須在意圖之間攜帶額外的東西。

甲-step1->乙-step2->Ç-step3->乙

步驟1

@Override 
    public void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_main); 
      String extraString; 
     Bundle extras = getIntent().getExtras(); 
     if (extras == null) { 
      extraString = null; 
      System.out.println("null extra"); 
     } else { 
      extraString = extras.getString("extra"); 
      System.out.println("from " + extraString); 
     } 

     Intent intent = new Intent(C.this,B.class); 
      intent.putExtra("extra", extraString); 
     startActivity(intent); 
    }; 

第二步

 public void onCreate(Bundle savedInstanceState) { 
      super.onCreate(savedInstanceState); 
      setContentView(R.layout.activity_main); 
        String extraString,extraString2; 


      Bundle extras = getIntent().getExtras(); 
      if (extras == null) { 
       extraString = null;        
       System.out.println("null extra"); 
      } else { 
        try 
         { 
        extraString = extras.getString("extra"); 
        System.out.println("from " + extraString); 
         { 
         catch{} 
      } 


        // CATCH EXTRA STRING2 

        if (extras == null) { 
       extraString2 = null; 
       System.out.println("null extra"); 
      } else { 
         try 
         { 
        extraString2 = extras.getString("extra2"); 
        System.out.println("from " + extraString2); 
         { 
         catch{} 
      } 

      Intent intent = new Intent(C.this,B.class); 
        intent.putExtra("extra", extraString); 
      startActivity(intent); 
     }; 

步驟3

public void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_main); 
      String extraString 
    Bundle extras = getIntent().getExtras(); 
    if (extras == null) { 
     extraString = null; 
     System.out.println("null extra"); 
    } else { 
     extraString = extras.getString("extra"); 
     System.out.println("from " + extraString); 
    } 

    Intent intent = new Intent(C.this,B.class); 
      intent.putExtra("extra2", extraString); 
    startActivity(intent); 
}; 
+0

從A到BI發送額外1,但從C到B extra2 – user1884872

+0

請看看編輯的答案 – Talha

+0

正如我所看到的,您的答案適用於默認的android:launchMode,對於android:launchMode = 「singleTask」答案在這裏http://stackoverflow.com/questions/14051507/how-to-send-data-to-created-activity-on-android/14052145#14052145 – user1884872