2011-03-31 22 views
4

我創建了一個與服務器同步的應用程序。 我已經有了一個代碼,一旦用戶按下按鈕,代碼就會進行同步。現在是時候在那裏添加服務了。 我有關於Android上的下列問題的services在android上的服務?

  1. 如果將用戶從未運行應用程序的服務啓動? (即剛剛安裝的那個)
  2. 服務何時第一次啓動?我可以從主應用程序的onCreate開始嗎?
  3. 如果用戶在應用程序中按下「同步」按鈕,我應該啓動該服務還是應該針對同一個進程使用不同的進程?我如何檢查那個背景同步是不是同時發生?
  4. 我應該使用的AsyncTask,即使該服務開始作爲

    startService(新意圖(這一點,ServiceSync.class));

+0

@mgv,我記得這件事,很快就會這麼做 - 只需要重新檢討我所有的問題(不幸的是,不是所有的人都回答)。 – 2011-04-02 10:30:02

回答

2

在Android中同步數據的首選方法是提供SyncAdapter來執行同步。您對this post中的必要步驟有非常好的總結。

你還會發現thesearticles有用。

編輯:

1-2-3:您可以使用bound service管理從活動的互動和服務方式。您提供的鏈接中有完整的工作示例。基本上,您綁定到您的活動onStart方法中的服務並解除綁定onStop

記住,服務UI線程上運行,所以每次耗時的任務,如通過網絡獲取數據必須在一個單獨的線程來完成。

4:你不需要在這裏的AsyncTask

+0

如果我不想將帳戶詳細信息添加到「帳戶和同步」屏幕,並希望僅在我的應用程序中顯示它們,我可以使用它嗎? – 2011-03-31 19:46:28

+0

不幸的是,你*需要*創建一個帳戶。但是,我想不出創建帳戶會傷害用戶的情況。相反,你會玩android生態系統,並讓你的用戶靈活地同步所需的內容。將同步嘗試排隊的責任委託給系統也不錯,不必親自​​處理。 – mgv 2011-03-31 19:47:05

+0

授權通過OAuth進行。不知道用戶必須輸入用戶名和密碼;)。 – 2011-03-31 19:53:01