2011-10-04 217 views
0

我正在開發一個程序,它有2個按鈕:開始和結束。當我點擊開始時,它將開始每隔30秒獲取位置。並使用套接字連接將它們發送到服務器。當我點擊結束按鈕時,它將停止所有作品。 我可以在不使用線程的情況下執行此操作嗎?如果我需要使用線程,那麼實現它的最好方法是什麼。我應該聽LocationProvider與LocationListener獲取位置每隔30秒,併發送給他們在一個線程中,或者我應該創建連接線程並獲取位置在每個和發送。黑莓套接字連接和線程

回答

1

如果您在UI主線程中建立連接,則應用程序將變得無響應,直到連接終止,這是錯誤的!您必須爲您建立的每個連接創建一個線程,強烈建議這樣做。

您將不得不創建一個線程,每次休眠30秒,然後執行您所說的工作。

你的工作應該在線程來完成,不使用主線程這些東西

2

可惜的是,這是一個局部的答案(這是我很難理解你的問題的其餘部分):

我能做到這一點,而不使用線程?

這是不可能的。如果你在主UI線程上開始這樣做,那麼你的應用UI將不得不等待所有的事情完成(聯網是一項耗時的工作)。所以唯一的辦法是在後臺線程上執行此操作。

0

您必須使用另一個線程除了主UI線程(EDT)的在網絡交易。 您不能使用主線程進行網絡事務,因爲這是一個耗時的操作,會使主線程無響應,並且您的應用程序最終會崩潰。