2016-08-14 63 views
1

我正在處理一個android應用程序,並在應用程序中有一些讓用戶傳遞給另一個活動的按鈕。現在我在做這個意圖之間的轉換方法是象下面這樣:當我傳遞給另一個意圖後,意圖是否被殺死Android

Intent intent = new Intent(this,user_area.class); 
    intent.putExtra("user",user_name.getText().toString()); 
    startActivity(intent); 

通過以上內容,我開始一個活動,從活動我使用這個代碼讓回MainActivity

Intent intent = new Intent(context,MainActivity.class); 
    startActivity(intent); 

但我懷疑這導致內存過度使用,因爲我實際上並沒有回到應用程序啓動時創建的Main Activity,我只是創建另一個MainActivity實例。這是否真的如我所想,如果是我如何回到開始創建的活動,或者如果我不能做這樣的事情,我該如何讓應用程序讓以前的活動去?

回答

2

末尾添加

finish(); 

傳遞一個intentstartActivity()將創建一個新的實例該活動並將其添加到堆棧的前面。所以:

Intent intent = new Intent(context,MainActivity.class); 
startActivity(intent); 

基本上是要求創建一個新的實例。如果你只想在當前之前回到活動,請撥打之一:

finish(); 

或者,

super.onBackPressed(); 
+0

太好了。謝謝@Shaishav。 –

1

在你的解決方案中,你只需要按回按鈕,你就會回到第一個活動。 如果你想關閉它後打開新的實例就像你在第二個活動正在做的只是在

Intent intent = new Intent(this,user_area.class); 
intent.putExtra("user",user_name.getText().toString()); 
startActivity(intent); 
+0

馬里亞諾感謝您的快速回復。正如你所說的,我只需按下後退按鈕即可進入MainActivity,但我不想通過這樣做回到MainActivity,我想用按鈕單擊操作取回。有沒有辦法做到這一點,同時又不創造新的活動? –

1

你只需要調用finish();方法

Intent intent = new Intent(this, DestinationActivity.class); 
startActivity(intent); 
finish(); 
相關問題