我想在創建應用程序時執行一些長操作(如複製/加載文件)。我創建了一個線程來執行此操作,該線程不會更新UI。我得到一個錯誤,說不能在不調用Looper.prepare()的情況下在線程中創建處理程序。我的代碼有什麼問題?android,在onCreate中創建線程時出錯()
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
threadFileManager = new Thread (
new Runnable() {
public void run() {
FileManager fM = new FileManager();
fM.copyFileFromAssetToStorage();
}
});
threadFileManager.start();
}
編輯:錯誤說謊在我的FileManager類中,當它是Activity的子類時。更改爲服務工作。
我相信這個主題將幫助您: http://stackoverflow.com/questions/3875184/cant-create-handler-inside-thread-that-has-not-called-looper-prepare – Khanh 2012-07-07 03:01:21
的錯誤是指創建一個Handler。我沒有看到您發佈的代碼中會創建Handler的任何內容。發佈FileManager的代碼。如果你需要在你的線程中使用Handler,那麼你將需要創建一個Looper來充當Handler的消息分派器。 – 2012-07-07 09:14:09