2012-10-20 145 views
2

我是Android應用程序開發新手,希望瞭解全局變量的一些信息。我做了很多搜索,我明白在類文件中你可以聲明一個全局變量(糾正我,如果我錯了)。我看了很多帖子,包括Android - Global variables?。他們沒有幫助我理解我想知道的內容。我的目標是能夠創建將在應用程序終止後發生變化並保持變化的變量。我的想法是,我想有一個主頁面,然後分支到一堆其他頁面,並有一個全局變量,可以保存您當前正在訪問的頁面,這樣,當您恢復時,可以按下一個標記爲「繼續」的按鈕它會將您帶回您以前所在的頁面。如果有比全局變量更好的方法,我願意提供替代方案,請提前致謝!全局變量Android

+0

[see this](http://stackoverflow.com/questions/12744094/java-properly-using-static-variables-to-prevent-deadlock-synchronizing/12744214#12744214) –

回答

1

除非將應用程序寫入永久存儲,否則在應用程序終止後,您不能擁有變量 - 全局變量或其他變量。在Android中,這可以通過ObjectOutputStream將對象寫入文件系統或SharedPreferences來保存用於檢索的鍵/值對。當你需要它們時,你將不得不保存和設置你的變量。

但是,你不應該做全局變量。

+0

好的,你能給我一個ObjectOutputStream如何工作的例子?或SharedPreferences?我一直在試圖弄清楚他們是如何工作和訪問很多頁面,但無濟於事。我無法成功寫入數據,然後再次打開數據,如果您可以向我展示一個我將非常感激的示例! – cmpickle

+0

你應該閱讀[docs](http://developer.android.com/guide/topics/data/data-storage.html#pref)。基本上你可以調用'getSharedPreferences(name,mode)'獲得一個SharedPreferences對象。那麼你可以調用'getXXXX(key,default)'來獲得設置。把一個設置放到喜好文件中,使用'pref.edit()。putXXXX(key,value).commit()' – toadzky

6

您可以使用SharedPreferences來做到這一點。在您的活動,請使用:

SharedPreferences preferences = this.getSharedPreferences("name", Context.MODE_PRIVATE); 
preferences.edit().putString("lastPage","mainPage").commit; 

要閱讀保存的數據,使用:

String lastPage = preferences.getString("lastPage"); 

http://developer.android.com/reference/android/content/SharedPreferences.Editor.html知道,你可以存儲類型。