2011-03-31 4 views
4

서버와 동기화되는 응용 프로그램을 만들었습니다. 사용자가 이미 버튼을 누르면 코드가 동기화되었습니다. 이제 서비스를 추가 할 차례입니다. 사용자 전에 응용 프로그램을 실행하지 않을 경우안드로이드 서비스?

  1. 서비스가 시작됩니다 나는 안드로이드에 services 관련하여 다음과 같은 질문이? (즉 방금 설치 한 것)
  2. 서비스가 처음 시작될 때? 주 응용 프로그램의 onCreate에서 시작할 수 있습니까?
  3. 응용 프로그램에서 사용자가 [동기화] 단추를 누르면 해당 서비스를 시작해야합니까, 아니면 동일한 프로세스를 사용해야합니까? 백그라운드 동기화가 동시에 일어나지 않는 것을 어떻게 확인할 수 있습니까?
  4. 나는 서비스가

    startService (새 의도 (이, ServiceSync.class))로 시작하더라도, AsyncTask를 사용해야합니다;

+0

@mgv에 대해 기억하고 있으며 곧 그렇게 할 것입니다. 모든 질문을 다시 검토해야합니다 (불행히도 모든 질문에 답변하지는 않음). –

답변

2

Android에서 데이터를 동기화하는 가장 좋은 방법은 동기화를 수행하기 위해 SyncAdapter을 제공하는 것입니다. this post에 필요한 단계를 아주 잘 요약했습니다.

또한 thesearticles 유용을 찾을 수 있습니다.

편집 :

1-2-3 : 당신은 당신의 활동에서 상호 작용과 서비스 방법을 관리 할 bound service를 사용할 수 있습니다. 제공된 링크에 전체 작동 샘플이 있습니다. 기본적으로 활동의 onStart 방법으로 서비스에 바인딩하고 onStop의 바인딩을 해제합니다.

는 서비스는 별도의 스레드에서 수행해야합니다 같은 네트워크를 통해 데이터를 가져 오는 등, UI 스레드에서 그래서 모든 시간이 많이 걸리는 작업을 실행 것을 기억하십시오.

4

: 당신은 여기에 AsyncTask 필요가 없습니다.

+0

"계정 및 동기화"화면에 계정 정보를 추가하지 않고 응용 프로그램에 표시하려는 경우 사용할 수 있습니까? –

+0

불행히도 계정을 만들 필요가 있습니다. 그러나 계정을 만드는 것이 사용자를 해치는 시나리오는 생각할 수 없습니다. 반대로 Android 환경을 멋지게 활용하고 사용자가 원하는 콘텐츠를 동기화 할 수있는 유연성을 제공합니다. 동기화 시도를 시스템에 대기시키는 책임을 위임하고 직접 처리 할 필요가 없습니다. – mgv

+0

인증은 OAuth를 통해 발생합니다. 어떤 사용자가 사용자 이름과 암호로 입력해야하는지 잘 모릅니다.). –