Среда, 20 ноября 2019

안드로이드 일정 관리 예제

41

Android M은 사용자가 오랫동안 장치에서 떨어져있는 동안 배터리 소모를 최소화하기 위해 Doze 모드를 도입했습니다. 이제 작업을 빌드하고 실행하도록 예약해야 합니다. 다시 익숙한 패턴은 예약 된 작업을 만들 수 있도록 안드로이드에서 사용된다 — 빌더. 빌더를 사용하여 새 JobInfo 개체를 만듭니다. 다음 연습은 Android 로컬 서비스 연습을 기반으로 합니다. 안드로이드 5.0 롤리팝 (API 21) 릴리스는 JobScheduler 클래스를 통해 작업 스케줄러 API를 소개합니다. 이 API를 사용하면 장치에 사용 가능한 리소스가 더 많은 경우 작업을 일괄 처리할 수 있습니다. 일반적으로 이 API는 사용자에게 시간이 중요하지 않은 모든 것을 예약하는 데 사용할 수 있습니다. Android 앱에 반복적인 작업이 있는 경우 Android 시스템에서 리소스를 확보하기 위해 활동 및 서비스를 종료할 수 있음을 고려해야 합니다.

따라서 TimerTasks 클래스와 같은 표준 Java 일정에 의존 할 수 없습니다. 저작권 2017 안드로이드 오픈 소스 프로젝트, Inc. 이제 안드로이드에서 작업을 예약하는 것은 새로운 것이 아닙니다. 예를 들어 Android의 AlarmManager는 Android API 1 이후 응용 프로그램이나 작업을 반복적으로 예약하는 수단이었습니다. 새 작업 스케줄링 API는 환경 리소스에 대해 더 잘 알고 있으며 특정 리소스를 사용할 수 있을 때 배치 작업을 시작할 수 있다는 점에서 AlarmManager와 다릅니다. 프로젝트 볼타는 안드로이드 장치의 전력 사용을 개선하기위한 안드로이드 5의 기능에 주어진 이름입니다. Volta에는 배터리 사용량을 모니터링하기 위한 더 나은 도구가 포함되어 있습니다. 나는 곧 게시물에 그 도구를 다룰 것입니다. 그것은 또한 작업을 예약하기위한 새로운 API를 포함 – 작업 스케줄러 – 나는이 안드로이드 개발 튜토리얼에서 다루는. GitHub에서 JobSchedulerExample의 전체 소스 코드를 다운로드할 수 있습니다.

이 작동을 테스트하는 좋은 방법은 연결된 장치에서 응용 프로그램을 실행한 다음 WiFi를 끄면 작업이 취소되는 것을 확인하는 것입니다. 그런 다음 WiFi를 다시 켜고 몇 분 후에 작업을 다시 시작할 수 있습니다. 따라서 다음에 백그라운드에서 다운로드를 계획할 때 JobScheduler를 사용하여 사용자에게 배터리 수명을 조금 더 주는 것에 대해 생각해 보십시오! 또한 Android 개발에 대해 자세히 알아보고 싶다면 여기에서 시작하는 것이 좋습니다. 우리는 한 번에 한 단계 안드로이드 개발자에 초보자에서 당신을 데려 갈 것이다 길을 따라 모든 것을 설명합니다. 다른 한편으로는, 좀 더 고급 뭔가 찾고 있다면, 다음 강력 하 게 체크 아웃 하는 것이 좋습니다 우리의 스레드 및 서비스 과정. 그것은 당신에게 당신이 백그라운드에서 작동 할 응용 프로그램을 구축 자신감을 느끼는 데 필요한 모든 정보를 제공 할 것입니다! 또한 AndroidManifest에서 작업 서비스를 등록해야 합니다. 사용자 지정 SyncAdapter 또는 경보 관리자와 비교하여 JobScheduler는 작업의 일괄 일정을 지원합니다. Android 시스템은 작업을 결합하여 배터리 소모를 줄일 수 있습니다.

JobManager를 사용하면 네트워크의 안정성이 자동으로 향상될 때 업로드를 더 쉽게 처리할 수 있습니다. 또한 응용 프로그램 다시 시작을 생존. 다음은 이 작업 스케줄러를 사용하는 경우의 예입니다: 보시다시피 Android에서 배경 작업을 예약하는 것은 모두 동일한 작업을 수행하는 3개의 다른 API로 매우 골치 골치 않습니다. 이 문제를 극복하기 위해 Evernote의 좋은 사람들은 안드로이드에서 작업을 예약하기 위해 통합 라이브러리를 오픈 소스로 제공했습니다. 최신 안드로이드 응용 프로그램은 JobScheduler API를 사용해야합니다. 앱은 메모리, 전원 및 연결 조건에 따라 시스템을 최적화하는 동시에 작업을 예약할 수 있습니다. 안드로이드 시스템은 현재 작업을 예약하는 두 가지 주요 수단이 있습니다 : 지정된 작업의 작업은 어디에 있습니까? 수행할 작업 또는 작업을 포함하는 개체는 JobService의 인스턴스입니다. JobService (android.app.job)는 오래된 안드로이드 서비스 클래스의 하위 클래스입니다. 따라서 수행해야 하는 백그라운드(UI가 아닌) 작업을 나타냅니다. 기본적으로 일반 Android Service 개체와 마찬가지로 JobService는 기본/UI 스레드에서 실행됩니다.

일반 서비스와 마찬가지로 AsyncTask를 만들고 사용하는 것과 같이 UI가 아닌 스레드로 작업 실행을 처리해야 합니다.