我需要我的Android應用程序,以檢查服務器每隔X時間,看看財產以後新加入
檢查服務器每隔X時間,看看是否被添加新的東西 - 和 然後使用添加新的數據。
我該怎麼做>>?
你應該使用什麼樣的服務器? (數據只是一個「字符串」格式)
樣本會有幫助!
thx提前湯姆。
我需要我的Android應用程序,以檢查服務器每隔X時間,看看財產以後新加入
檢查服務器每隔X時間,看看是否被添加新的東西 - 和 然後使用添加新的數據。
我該怎麼做>>?
你應該使用什麼樣的服務器? (數據只是一個「字符串」格式)
樣本會有幫助!
thx提前湯姆。
就我個人而言,我不認爲它會有效。考慮你有更多的用戶,它會像瘋了一樣查詢你的服務器。
如果數據只是字符串,把它放在HTML網頁甚至txt文件中都可以。每當你想查詢,閱讀該HTML頁面或下載該文本文件。
在任何類型的操作系統上,Apache都非常好。我建議你從那裏開始。無論如何,我建議你重新考慮你的方法,如果X是一個非常小的數字,如每5秒鐘一次。如果它像一兩天,你會沒事的。
thx回答 - 我的應用程序只使用2智能手機,所以我不認爲這應該是一個問題 - 但我該怎麼做 - 如何我檢查服務器(html網頁)evrey X時間? thx提前,湯姆。 – user1581901
@ user1581901 X有多大?幾秒鐘,幾分鐘還是幾天?如果是幾秒鐘,我會說你是正確的一個班級來做到這一點。如果分鐘或更長時間,使用AlarmManager(http://developer.android.com/reference/android/app/AlarmManager.html) –
X大約2-4分鐘 - 所以你建議我使用AlarmManger? – user1581901
如果您有自己的服務器,只需使用GCM並向手機發送消息,告訴它有新的東西。那麼它可以去得到它。這將使用更少的電池和數據流量。
他說他只有兩部手機需要這些數據。在我看來,使用推送消息只會增加複雜性。 –
我沒有說過它更簡單,我說它更有效率。我討厭那些耗盡我電池電量的應用程序,所以使用GCM停止這個值得(輕微)增加複雜性 - 至少對我來說是這樣的。 – toadzky
真的。但無論如何,我真的認爲這取決於他真的拒絕告訴我們的時間間隔。 –
我同意肖恩許,最好是使用谷歌推送服務(GCM)(http://developer.android.com/guide/google/gcm/index.html)。如果這是一個矯枉過正只是做一個http請求:
private void loadData(String url){
String result = "";
try {
URL url = new URL(url);
HttpURLConnection conn = (HttpURLConnection) url.openConnection();
conn.setDoOutput(true);
OutputStreamWriter wr = new OutputStreamWriter(conn.getOutputStream());
wr.write(data);
wr.flush();
BufferedReader inStream = new BufferedReader(new InputStreamReader((conn.getInputStream())));
String str = "";
if((str = inStream.readLine()) != null){
result = str;
}
inStream.close();
} catch (MalformedURLException e) {
e.printStackTrace();
} catch (IOException e) {
result = "";
}
return result;
}
因爲這個任務需要長時間excecute,你應該把它放在一個線程。這樣稱呼它:
new Thread(){
public void run() {
loadData("your url"); // save the result in some instance variable
}
}.start();
alarmmanager + HTTP標頭(lastmodification如果-,因爲修改) – njzk2
我會建議使用服務。 http://developer.android.com/guide/components/services.html – Shark