2014-02-22 148 views
0

我有一個關於Android應用程序的設計問題,我不確定我是否可以在這裏問(如果不是,請告訴我什麼時候可以問)。網站將信息推送到應用程序或從網站檢索應用程序的設計

我想製作一個應用程序,它從網站獲取信息(或實際上使網站將位置推送到應用程序)。想象一下有3個領域的網絡表單(3個卡車位置)。我希望每當我把這些值,然後點擊提交,設備上的Android應用程序將顯示卡車在地圖上的位置。我熟悉谷歌地圖,因此我知道如何在給定位置的地圖上顯示3個點。我也知道如何編寫能夠在按下提交按鈕時執行POST/GET的HTML代碼。但是,通信以及如何在應用程序上啓動此觸發器是我所困惑的。所以它更像是一個架構設計問題。我需要一個起點來知道從哪裏開始尋找。我希望我在這裏提出我的觀點。

SOOO任何幫助嗎?:)

+1

搜索條件:websockets(最新版本的HTML5瀏覽器),長輪詢(所有瀏覽器),或者只是JavaScript'setInterval'來做基本的輪詢。 –

+0

但我希望他們被髮送到應用程序。該應用程序如何知道有新的數據可用? – Snake

+1

「將執行POST/GET ...的HTML代碼」混淆了我......根據您使用的語言,應該很容易在定時器上的網站上調用REST方法作爲最簡單的輪詢解決方案。推一般難一點,使用現有的庫雙方將是明智的。 –

回答

4

你談論建立推送通知,看http://parse.com/products/push

+0

嗯有趣。但是我有一種不涉及第三方產品 – Snake

+1

的方式來建立你自己的推送通知服務器將是困難和昂貴的,但是如果你編寫了你自己的API然後讓應用程序每隔一段時間通過一個服務輪詢api或者用戶檢查它會是你最好的選擇 –

+0

好吧,我看到類似於阿列克謝在上面的評論中所說的。所以我認爲推動對我來說是無可爭議的。問題依然存在,如果我調查數據,我在投票什麼?點擊提交後正在保存在服務器上的文本文件? – Snake

3

這可能是一個用例使用Google Cloud Messaging (GCM)。我還沒有與GCM合作過,但這是一種選擇。

另一個想法是設置一個AlarmManager來安排提取數據。我能想到的一個缺點是,如果將AlarmManager設置爲頻繁(例如:每10分鐘一次),那麼所有這些網絡請求都將快速耗盡電池。

另一種替代選擇和類似於輪詢的方法是在應用程序中使用用戶手動按下以獲取最新數據的按鈕。

+0

+1。我正在尋找更多涉及應用程序外的其他組件 – Snake