2012-02-07 22 views

回答

2

原因是您的代碼沒有關閉文件,系統沒有用完文件句柄。您應始終使用使用編碼模式的文件,以確保在不再需要時關閉所有流。下面是一個典型的模式:

InputStream is = null; 
try { 
    is = new FileInputStream(myFile); 
    // read stuff from is 
} finally { 
    if (is != null) { 
     try { 
      is.close(); 
     } catch (IOException e) { 
      Log.w(LOG_TAG, "Exception raised when closing file", e); 
     } 
    } 
} 

try也可以具有catch條款。 finally子句中try/catch的原因是爲了防止在關閉文件時發生異常,以阻止在外部try塊中引發的任何異常。

寫入文件往往不是問題,因爲程序員通常會小心關閉文件以確保數據到達文件。但是,應遵循類似的模式:從不讓異常阻止文件的關閉。

+0

但問題是我沒有在我的代碼中使用任何傳統的文件處理。我使用的是共享首選項。我應該把它們包裝在試穿中嗎? – 2012-02-07 06:06:02

+0

@JawadAmjad - 您是否在使用任何可能打開文件的第三方庫?任何網絡連接?任何數據庫? – 2012-02-07 06:19:13

+0

是的,我正在使用,但不是在崩潰的活動。它發生錯誤的主要遊戲場景我使用MainMenu中的庫。 – 2012-02-07 06:33:51

相關問題