2011-05-23 64 views
3

這可能是一個愚蠢的問題,但是有沒有一個規則說明意圖額外必須被消費活動明確地刪除,還是隻有在回收Intent對象時纔是真的?必須刪除意向演員嗎?

換句話說,如果我一直鏈到下一個活動做類似:

Intent i = new Intent(MyCurrentActivity.this, FooActivity.class); 
i.putExtra("first", "stringvalue"); 
i.putExtra("second", 69L); 
startActivity(i); 

然後,在FooActivity,我讀他們回來了...

String first = getIntent().getStringExtra("first"); 
long second = getIntent().getLongExtra("second"); 

..我是否也必須明確地刪除它們以避免意外污染未來活動的意圖,或者從我抓住它們的那一刻起,我能否忘記它們甚至存在並繼續前行?

我可以發誓我記得讀過一些說我必須刪除它們的東西,但我一直無法找到它,我懷疑它可能只適用於重用的意圖對象。

+0

在JB中刪除臨時演員有​​問題。如果您在刪除額外內容後返回活動,它仍然會被調用。有任何想法嗎? TNX! – MSquare 2013-06-24 10:06:43

回答

2

如果您打算使用相同的Intent對象,但不需要(也不需要)額外功能,那麼您可以將其刪除。相反,如果你想用相同的額外參數來調用開始的同一個意圖,那麼保留它們。最後,如果物體將被破壞,誰在乎額外物品?

無論如何,我會決定打電話者的活動,而不是意圖的接收者。

+0

根據這個答案和MSquare的評論(上面),看起來最安全的做法是僅僅離開Intent extras,讓垃圾收集器處理它們。 – Bitbang3r 2013-06-28 18:23:19