2014-01-05 21 views
0

我是新來的android。我需要一些幫助來處理我的應用程序。基本上我正在嘗試開發一個測驗應用程序。我有問題存儲在一個文件中。所以我的應用程序從文件中讀取每個問題,並使用InputStream和BufferedReader對象將其顯示在屏幕上。Android我們可以保存BufferedReader對象onpause

is = this.getResources().openRawResource(R.raw.sampletest); 
br = new BufferedReader(new InputStreamReader(is)); 

當用戶退出應用程序在中間所以現在,我想我的應用程序,以節省是和BR值(指着其中左邊的應用程序的問題),並在下一個應用程序運行時再恢復它們。在做了一些瀏覽之後,我瞭解到,如果我們希望在不同運行之間保持應用程序狀態,onPause()就是這樣的任務之一。但是我們可以保存這些對象嗎?如何將它們保存在onPause()中。有人可以用保存這些對象的代碼片段來幫助我嗎?

謝謝你這麼多提前...

+0

簡單的話「NO」 –

回答

0

我想你應該寫的數據保存到文件中的代碼,並在負載從已保存的文件解析數據,並創建對象。

的onPause是不是在這裏有用,因爲像你說的它是關於程序退出,這樣

編輯所有的內存(和你的對象)都將丟失..:

如果您確信您的應用程序還將繼續運行在後臺,儘量節省外活動對象:

非常粗略的例子:

void onPause(...) { 
    SomeSingleton.getInstance().setObjects(is, br); 
} 

void onCreate(...) { 
    is = SomeSingleton.getInstance().getIs(); 
    br = SomeSingleton.getInstance().getBr(); 
} 
+0

K..but我讀的onPause()是的B/W的應用程序運行.. – user2784307

+0

如果您確定您的應用程序繼續運行很purpose..persisting狀態,你可以使用,例如,下面的解決方案: 做一些Singleton類,並保存在那裏的對象 –

+0

首先,謝謝你..我的意思是「應用程序不同運行」意味着當應用程序關閉並打開相同因此,我不認爲單身人士將在這裏使用..將它仍然有用嗎?.. – user2784307

0

號,你應該做的是保存一些簡單如T他的位置(問題編號)和可以在onSaveInstanceState中捆綁的答案列表。然後您可以從onCreate的Bundle中獲取這些保存的值。

例如

private int position; 
private ArrayList<String> answers; 

@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    if (savedInstanceState != null) { 
     position = savedInstanceState.getInt("position"); 
     answers = savedInstanceState.getStringArrayList("answers"); 
    } else { 
     answers = new ArrayList<String>(); 
    } 

    // This should load up the right question. 
    displayQuestion(position); 
} 

@Override 
protected void onSaveInstanceState(Bundle outState) { 
    super.onSaveInstanceState(outState); 
    outState.putInt("position", position); 
    outState.putStringArrayList("answers", answers); 
} 
+0

所以應該我救qno,當ap p下次啓動,我應該解析文件,直到遇到特定的qno?沒有其他方式?... – user2784307

+0

是的。改變存儲問題的方式可能是值得的,例如單獨的文件或SQLite數據庫,以便您一次可以檢索一個問題。但是,如果文件不是那麼大,那麼只需一次加載它們。 –

+0

感謝羚牛你的時間幫助我..「一次加載所有這些」你的意思是我應該添加所有問題從文件到一些列表..然後加載列表中的問題? – user2784307

相關問題