2013-07-02 38 views
0

只要應用程序處於活動狀態,我需要一種方法來存儲json字符串。存儲字符串,直到應用程序獲得「強制停止」

於是將此放入換句話說:) 如果應用程序改變方向或者被暫停或停止,我需要存儲我的價值/串.. 但是,如果應用程序被強制殺死出於某種原因我想價值被刪除/下降

我試圖創建一個自定義的歷史處理程序..這個歷史處理程序支持保持在我的應用程序的行動歷史,只要應用程序進程實際上正在運行,但只要進程被殺死我需要歷史才能被擦除。

我試圖將值/字符串存儲爲SharedPrefernce,並將其簡單地刪除一次isFinishing()== true 我也試過使用onDestroy以及..但似乎沒有「beforeProcessKilled」 - 聽到的事情..所以也許有另一種選擇比使用SharedPreferences?

在此先感謝!

回答

2

使用簡單的Java靜態數據成員。無論出於何種原因,該價值將持續到流程終止。

+0

像一個正常的靜態變量/ objectref? (像靜態字符串測試=「測試」?) 想到我試過..但由於某種原因,失去了價值以及一旦我改變了我的設備的方向..但我可能是錯誤的.. – Inx

+0

@Inx:「像一個正常的靜態變量/ objectref?」 - 是的。 「但由於某種原因,我失去了價值,以及我改變了設備的方向」 - 只有當您不小心重置了您的價值。 – CommonsWare

+0

好的,謝謝!我會再試一次,看看是否有其他任何事情導致「重置」 – Inx

0

這是我的方式,也許不是最好的。 您可以創建一個名爲「全球」或其他類... 然後裏面是這樣的,聲明一些「靜態」變量:

public class Global_variables { 

public static JSONArray test; 
public static String test1; 

} 

然後,在你的活動或其他進口「Global_variables」,並得到您的字符串或其他這樣的:

String IwantTostore = Global_variable.test1; 

如果你改變方向,你Global_variable.test1保持活躍;)

希望這有助於

0

我平時做這樣的事情

public class Globals extends Application { 

    private String jsonString; 

    public void jsonString(String string) { 
     jsonString = string; 
    } 

    public String jsonString() { 
     return jsonString; 
    } 

} 

然後用類似

Globals myGlobal = (Globals)getApplication(); 
// get json string 
String json = myGlobal.jsonString(); 

等訪問...

相關問題