2013-08-06 38 views
0

可以說我有10個活動在backstack。如何改變backstack中的第10項活動(這是活動A的一個實例)將會在backstack(也是活動A的一個實例)中觸發第2項活動的改變。如何在Android中進行回調。除了使用StartActivityForResult

我不能使用StartActivityForResult的原因是,更改可能發生在第n個活動中。我不能繼續使用onActivityResult向後發送數據。

此外,我不能使用靜態數據,因爲沒有同一個活動的實例。

實際情景:

採取嘰嘰喳喳,在那裏我有我的關注者列表的選項跟隨用戶在列表中和的情況下,我可以選擇一個人,去他的追隨者列表,我會看到每個用戶的後續選項等等。

因此,如果我在後臺堆棧中的某個第10個列表上跟蹤用戶,那麼這將如何反映在包含相同用戶的第一個列表中?我的意思是它必須從後續改爲跟隨。

+0

使用界面這是更好的選擇 –

+0

@DixitPatel。你能更具體一點嗎?任何鏈接或代碼示例都可以。謝謝。 – user1537779

+0

爲什麼不在一些教程中查看Observer模式? –

回答

-1

如果你不想使用startActivityForResult,那麼你需要創建的每個活動的靜態實例,使其從任何其他activity.eg:-

公共類xyz的訪問擴展活動 {

private static xyz instance; 

public void onCreate(Bundle savedInstanceState){ 
     super.onCreate(savedInstanceState); 
     ................ 
     ................ 
     instance = this; 

} 

public static xyz getInstance(){ 
     return instance; 
} 

}

+0

我如何知道哪個實例返回?此外,我不能確定哪個項目發生了變化,我最終會在活動中改變everthing(重新創建)。 – user1537779

+0

我認爲你應該靜態ArrayList 來維護同一個Activity的每個實例的引用。 – EEJ

0

您應該以獨立於活動的方式存儲您的數據。通常這是通過sqlite數據庫完成的。基本的想法是,當使用者執行一個你希望記錄的動作時,你會以某種方式保存它。在數據庫中更可能。現在數據已存儲並可訪問。

下一步是如何在活動中顯示更新的數據。這通常在Activity#onResume()中完成。在onResume中,您將執行一些可以檢索存儲的數據然後更新顯示的操作。顧名思義,或多或少地使用了startActivityForResult。以被叫方的意圖爲主叫方提供一些數據開始另一個活動。它不用於嘗試通過Activity堆棧發送數據和狀態。

+0

但是爲什麼數據庫?我的意思是爲什麼我應該將它們存儲在數據庫中,因爲數據通常會經常變化。就像說點擊關注並取消關注。也會有大量的數據,像我說的約10名用戶的追隨者名單.. – user1537779

+0

我只是試圖提供一個非常籠統的概述如何做你想做的事情。由您決定如何存儲和檢索您的數據。但是,重點是數據存儲與活動是分開的,不同的。這些活動用於操作和檢索數據。它們不用於存儲數據。 – Qberticus

相關問題