2011-10-14 55 views
2

我有一個關於活動多個實例的問題。android多重活動實例?

例如)

A1是一種活動,A1 A2開始使用startActivity(),然後使用A2 startActivity(),以及開始A1,A1如何的許多實例在當前的系統中存在?

+0

只有一個實例存在。 –

+1

這取決於啓動模式。請參閱[這裏](http://developer.android.com/reference/android/R.styleable.html#AndroidManifestActivity_launchMode)。 – slkorolev

+0

@Android_Crazy - 那只是不正確 – NickT

回答

3

正如你所問,只會有一個A1的實例出現。

  1. 如果你沒有完成A1,而去A2,那麼新的實例將返回到A1時創建 。
  2. 如果你沒有完成,A1的後臺運行實例( 將堆棧)將出現在前面。

我這裏是

Intent i=new Intent(A1.this,A2.class); 
startActivity(i); 
finish(); 

This is my point 1.In this case if you will come back from A2 then new instance will be created. 

這裏是我的第二點只是沒有完成();

Intent i=new Intent(A1.this,A2.class); 
startActivity(i); 

在這種情況下,如果u將來自A2當年A1已經是在後臺運行,因爲當要A1.So它會在你面前還沒有完成它。

+0

請重新表述,我不明白。假設我爲所有活動啓動調用使用startActivity()。 –

+0

看到我編輯的答案plz。 –

+0

謝謝,所以你的觀點在任何情況下,系統中最多隻能有一個活動實例? –

2

這取決於您在啓動活動時在意圖上設置的標誌。例如,如果您將它們設置爲Intent.FLAG_ACTIVITY_REORDER_TO_FRONT,則該活動將被重用,即不存在多個實例。如果你沒有設置任何標誌,那麼你描述的場景會在棧上啓動一個新的活動。最終你會耗盡內存。只有調用finish()纔會銷燬活動實例