2013-08-23 44 views
1

我想知道是否有可能(實際上)每隔幾分鐘運行一段代碼即使用戶正在使用該應用程序。這背後的基本理念是,用戶將帶着我的應用程序加載在現場的智能手機,並開始收集數據,而他正在收集數據或與應用程序的其他選項一起玩,手機捕獲3g/wifi區域,它將開始將數據同步到服務器。我一直使用Google雲消息傳遞(GCM)將通知從我的Web服務推送到設備,當它到達手機時,這意味着手機現在已連接到互聯網,我運行了一段代碼,爲我做了同步。它會停止應用程序的當前活動,或者我會說用戶將能夠繼續收集數據並且同步也在後臺運行?這種情況下的任何想法?背景當應用程序運行時的操作

謝謝你們。

回答

0

與服務器通信的任何事情本質上都是在ActionScript中異步的(並且不能使其同步)。所以,只要按照通常的做法與服務器進行通信即可。其他處理,例如在大集合上循環或繪製大量對象,can make the application unresponsive

+0

因此,我將從SQLite內部設備中選擇記錄並將它們發佈到Web服務器。從設備中選擇記錄的循環會發生什麼?是會停止在手機中的用戶活動,還是將在後臺? – johnny

+0

我的循環並沒有那麼大,所以jsut想讓它們保持在後臺,應用程序用戶在不知道它正在同步的情況下執行他的工作。 – johnny

+0

我無法想象你手機上有數百萬條記錄或複雜的連接,會導致顯着的放緩。 –

0

是的,可以使用AsyncTask。當AsyncTask在後臺運行時,你的應用程序不會停止。

+0

我看到一些帖子說明它不在Flash Builder中可用!我使用flash builder 4.7是否可以在flash builder中實現?感謝您的回覆 – johnny

+0

我不確定,因爲我沒有使用它,但你可以使用AsyncTask爲你的web服務在後臺運行 –

+0

以及我需要在我的移動應用程序中使用AsyncTask而不是Web服務。由於數據存儲在設備內部的sqlite數據庫中,當設備連接到互聯網時,它開始將數據推送到web服務。 – johnny

相關問題