2012-10-09 63 views
1

在我的申請中有十項活動。如何在Android應用程序中維護以前的屏幕歷史記錄?

當我按下後退按鈕時,10個屏幕已保存歷史記錄。但是當我點擊下一個按鈕時,新屏幕沒有任何歷史數據。

如何在點擊下一個按鈕時保持歷史記錄? 我的意圖的代碼是

Bundle bundle = getIntent().getExtras(); 
String Group = bundle.getString("GroupApVehicle"); 
Intent log = new Intent(EngineCompartment.this, FrontAxle.class); 

Bundle bun = new Bundle(); 
bun.putString("Group", Group); 
bun.putString("ECSCORE", _StrpretriScoreCount); 
System.out.println("Enginegroup" + Group); 
bun.putString("TestIDFA", strtestid); 
log.putExtras(bun); 
startActivityForResult(log,IPC_ID); 

回答

1

請描述你的背部棧的當前狀態(例如活動 - 「乙 - 」ç - > d),哪些行爲要實現(例如交換活動D→B)。

編輯:

據我瞭解,你要保持活性存儲和保存它的狀態,當用戶按下「返回」按鈕。 您可以覆蓋後退按鈕的行爲與下面的代碼段:

 

    public void onBackPressed() { 
     moveTaskToBack (true); 
    } 

但它不能保證,那Android將讓你活動在內存中。如果操作系統需要額外的內存,它可能會被銷燬。解決方法:您的應用程序應該在您的活動中偵聽onPause()和onResume()事件。你必須序列化和反序列化你的數據,在暫停和恢復時保存活動的狀態。

此外,應將此屬性添加到每個活動的在AndroidManifest.xml塊,要一次初始化和保存它的應用程序生命週期中的狀態:

 

    android:launchMode="singleTask" 

然後使用的代碼下面的示例切換活動之間:

 

    Intent i = new Intent(C.this, B.class); 
    i.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP); 
    startActivity(i); 

您還可以使用Intent.FLAG_ACTIVITY_REORDER_TO_FRONT,但launchMode應設置爲 「singleTask」 了。

+0

D-> C-> B這是維持一個history.but這個流B-> C-> D不能 – Palaniraja

相關問題