在我的Android項目中,我有2個活動。一個是MyProject
,另一個是MyProjectOutput
。Android - 即使按下後退按鈕,程序仍駐留在內存中
在MyProject
,有一個按鈕(btnProcess
),它會做一些處理,並使用下面的代碼將啓動第二個活動:
btnProcess.setEnabled(false);
// does some network access in an AsyncTask and fetches some stuff, and store some data in the variable 'my_extra_content'
//...
Intent i = new Intent(this, MyProjectOutput.class);
i.putExtra("extracontent", my_extra_content);
startActivityForResult(i,1);
在第二個活動,它有一個按鈕,返回到主要活動(一個軟件後退按鈕)。而且代碼:
final Button btnBack = (Button) findViewById(R.id.btnBack);
btnBack.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
//when Back button is pressed, it is cancelled
setResult(Activity.RESULT_CANCELED);
finish();
}
});
,並在主要活動中,我使用這個重新啓用按鈕:
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
btnProcess.setEnabled(true);
}
我的程序運行在模擬器(AVD)的罰款。我已經把這個給了我的一個擁有Android設備的朋友。在測試之後,他說工作正常,但是當主活動按下後退按鈕(硬件按鈕)時,程序沒有終止。仍在記憶中!但是當我在AVD中測試時,當我按下主要活動中的硬件後退按鈕時,它會顯示手機的主屏幕!
我正在使用諾基亞設備(確切地說是5230)。而且我知道當我們按下「結束」按鈕時,有些程序可能仍駐留在內存中,我必須通過任務管理器手動關閉它。
所以,我對這個問題有點困惑!在使用兩項活動時,我有什麼需要照顧的嗎?
你爲什麼試圖從內存結束的過程中,我建議不要終止你的應用程序,安卓內存管理處理它自己 –
你檢查了你的朋友的手機嗎?運行的應用程序與緩存在內存中的應用程序之間存在差異。 – Sam
感謝您的回覆人..我沒有使用Android手機的經驗(只使用我朋友的一個Neo V,曾經)。我還沒有在手機上測試過這個應用程序..他測試了我的應用程序,並稱這是他唯一的問題,並建議修復它。由於我無法重現這種情況,所以我對做什麼感到困惑! –