2013-02-12 93 views
0

我正在開發一個應用程序,如下所示: Android APP(作爲客戶端)..它將數據發送到服務器(運行在PC上的Java應用程序)。 我使用套接字編程實現了它,它正在工作。我有以下問題:開發Android客戶端服務器應用程序

  1. 當我點擊我的應用程序上的發送按鈕APP UI凍結約7秒。它能夠ping和連接到服務器,但在這段時間內,UI凍結,如果我點擊應用程序上的任何其他按鈕,我會收到消息應用程序卡住(但應用程序在〜7秒後恢復正常)。解決問題的最佳方法是什麼?

  2. 一旦在PC上接收到數據(字符串),我想以列表框UI的形式顯示它,以便用戶可以選擇/雙擊特定的字符串,並打開一個消息框顯示該特定字符串被選中。什麼是開發這個UI的最好方法,以及如何在服務器從客戶端(android應用程序)接收數據後立即調用該UI,並且此UI將顯示出來。

請讓我知道。所有的幫助表示讚賞。

+0

對於1:使用'AsyncTask',所以你不凍結用戶界面,不會得到'NetworkOnMainthreadException's此外,這個問題不是很適合這裏,我們希望問題得到某種審判(因此流行的問題*「你有什麼嘗試?」)。 – 2013-02-12 03:27:36

+0

如果後臺進程長時間運行,建議不要使用AsyncTask。它可以簡單地在一個單獨的線程或服務中實現(在開發類似的應用程序時,這對我有用)。 – 2013-02-12 03:31:16

+0

關於你的第二個問題,你想在客戶端上這樣做,即android端?如果你想在客戶端使用類似的東西,那麼你可以讓服務器應用程序在收到一些數據後向客戶端發送一個通知。 – 2013-02-12 03:32:47

回答

0

將所有與網絡相關的代碼放入單獨的線程中,或者(更簡單)和AsyncTask。否則,您會注意到會阻止用戶界面,並且該應用程序實際上會在新版Android版本(ICS和JB)上崩潰。

如果你搜索SO和interwebs,你會發現很多例子。