2017-06-21 62 views
-1

我有3個屏幕:A,B,C.
從A,我使用意圖切換到B和從BI開關C.開關betweeen活動

如何可以選自C切換回甲(C和B都必須銷燬,A是我正在處理的屏幕)?

+0

通過 「屏幕」 ,你的意思是活動嗎? –

+0

是的,我的意思是活動。在你看來,「屏幕」和「活動」之間有什麼區別? –

+1

區別是***正確的術語***。 –

回答

0

你有兩種方式:

1)再次清楚堆用C啓動活性的:

Intent intent = new Intent(getContext(), A.class); 
intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK | 
Intent.FLAG_ACTIVITY_CLEAR_TASK); 
      startActivity(intent); 

2)你就可以開始B和C的結果,並在「onActivityResult」關閉它們:

例如B中,當你想啓動C

Intent intent = new Intent(context,C.class); 
startActivityForResult(intent, 1000); 

用C,當你想退出

Intent intent = new Intent(); 
    intent.putExtra("should_exit",true); 
    setResult(RESULT_OK,intent); 
    finish(); 

和B(它是已經落後C)

public void onActivityResult(int requestCode, int resultCode, Intent data) { 
    if (resultCode == RESULT_OK) { 
     if (requestCode == 1000) { 
      boolean shouldExit = data.getBooleanExtra("should_exit", false); 
      if (shouldExit) 
       finish(); 
     } 
    } 
} 
+0

這解決了我的問題! –

1

這裏的方法的順序會被開除,讓你回到一個由C

A - startActivityForResult 
B - startActivityForResult 
C - finish() 
B - onActivityResult, finish() 
A - onActivityResult 

根據,如果你需要的結果,正好startActivity & finish