내 앱이 백그라운드에서 큰 xml 파일을 다운로드 한 다음 데이터베이스를 업데이트 할 때 사용해야합니다. 이 업데이트가 사용자를 귀찮게하지 않고 백그라운드에서 자동으로 실행되기를 바랍니다. 이 부분은 쉽게 보이고 AsyncTask는 내가 여기서 사용하고자하는 것 같습니다. 응용 프로그램이 이미 진행Android : 백그라운드에서 업데이트하고 옵션 진행률 막대를 제공하는 방법
에 이미 업데이트 상태보기)2를 업데이트하지 않고 경우에만 경우
이 1) 수동으로 업데이트를 시작 :
그러나 나는 또한에 대한 사용자 수있는 방법을 제공 할 내가 지금 보는 바와 같이 여기
이 응용 프로그램의 흐름입니다 :
1) 앱은, 주요 활동 2) AsyncTask를 자동으로 응용 프로그램을
3) 사용자를 업데이트의 주요 활동에 의해 시작됩니다
시작됩니다 시작됩니다 선택됩니다 "업데이트 "주 메뉴에서
4) 사용자 i 업데이트는 백그라운드에서 진행되는 경우 업데이트 작업
5)되게 S :
--5A) 사용자가 보는 진행률 표시 줄
--5B) 그렇지 않으면, 사용자는 I 단계 생각 업데이 트를
을 시작하는 옵션을 본다 4 대 5는 내 주요 문제가있는 곳입니다. 업데이트 활동은 주 활동과는 다른 새로운 활동입니다. 업데이트 활동에서 AsyncTask에 액세스하는 방법을 모르겠습니다.
즉, 하나의 활동에서 AsyncTask를 시작하지만 AsyncTask의 진행 상황을 언제든지 열어서 닫을 수있는 두 번째 활동에만 표시하도록 할 수 있습니다.
내가 탐구 해 왔던 몇 가지 옵션에는 Service와 BroadcastReceiver가 포함되어 있지만 좋은 결정을 내리는 데는 충분하지 않습니다.
도움 주셔서 감사합니다.
제안 해 주셔서 감사합니다. 서비스에 대한 한 가지 확실한 점은 서비스를 한 번에 여러 번 사용할 수 있는지 여부입니다. 예를 들어 앱 (기본 활동)이 시작될 때 업데이트 서비스가 호출 된 후 사용자가 다른 활동에서 업데이트 서비스를 수동으로 요청하면 두 개의 동시 업데이트가 수행됩니까? 아니면 서비스는 기본적으로 싱글 톤과 같은 클래스입니까? –
@Max 헤드 룸은 싱글 톤이 아니며, 어떤 컨텍스트에서든 'startService'를 호출하면 onStartCommand'가'startService'를 호출하는 데 사용 된 인 텐트와 함께 호출됩니다. 따라서 startService는 동시에 여러 작업을 처리 할 수있는 장소입니다. 'que'연산을 원한다면 모든 IntentService를 사용하여 모든 논리를 처리하고 의도가 들어올 때'onStartCommand'를 한 번에 하나씩 끕니다. 희망이 있습니다! – schwiz