2012-03-20 184 views
-2

我試圖建立一個應用程序,每一個給定的時間,將連接到遠程服務器,並從中獲取JSON對象。android服務更新活動

當我在網上搜索答案時,我無法確切知道如何設置服務並運行它,只要應用程序正在運行。

我想我的main.xml屏幕有某種TextView將從服務更新。

無法找到任何地方如何建立我在找一個簡單的例子,在需要時更新一個TextView服務..

- 爲我是新手,Android的發展。

+0

你可以谷歌它關於這一點。 – Pavandroid 2012-03-20 18:13:00

回答

1

你應該尋找什麼 - 也許而不是這個實例中的服務 - 是一個AsyncTask。當你需要從後臺更新用戶界面,而不是在主線程中停留太久時,這就是你所使用的。 Here's one AsyncTask tutorial,here's Android SDK文檔對此有何評論。

如果您需要做一些事情,比如每隔一段時間從服務器下載JSON,Service可能是一個很好的解決方案。要在服務和活動之間來回通信,您將使用Messenger和Handler示例。您可以找到如何在SDK中包含的API演示中使用信使/處理程序模式來處理服務和活動的示例()。 this SO線程也是相關的。

如果您需要爲您的服務經常運行的每一個,你會想看看使用AlarmManager來獲取數據,存儲在某個地方,然後刷新顯示在活動(也許是通過在數據庫中的應用程序)。但基本上,如果您需要快速下載某些內容並更新活動,請使用AsyncTask,如果您需要更長期的內容,請綁定一個服務,然後使用Messenger/Handler對(或AIDL)在它與Activity之間來回交流,但這更復雜..)

+0

是的,所以我讀過..但我的問題與SDK的例子,有時太複雜,我理解.. 你可能指導我一個非常簡單的教程,只顯示過程的基本知識? – 2012-03-21 06:21:12

+0

哦,這很難做...這是一個相當複雜的過程,不是一個簡單的函數調用或任何東西。相反,也許你應該在試圖做這樣的事情之前閱讀關於什麼是遠程過程調用/進程間通信? – 2012-03-21 13:21:33

+0

這就是我會做當然:) 是不是有一個簡單的方法,我的服務可以setText()內的TextView對象?如: TextView text =(TextView)findViewById(R.id.text1); ? – 2012-03-21 17:16:06