안드로이드 7.0부터 DownloadProvider까지 JobScheduller처럼 끊임없이 변화하는 이야기

1436 단어 Android
많지는 않지만 DownloadProvider의 구조는 간단하고 명쾌하며 참고 가치가 많다.
그런 DownloadProvider로 인해 안드로이드 7.0 Nougat의 설치에 큰 변화가 생겼기 때문에 원본 코드를 쉽게 판독할 수 있는 노트입니다.
※ 참고로 이 글은 DownloadProvider의 원래 제작을 알고 있다는 전제로 작성되었습니다.모르시는 분들은 안드로이드 6.0 소스부터 읽어주세요.
 
 

객체 제출


사라진 DownloadService


DB에 적힌 이벤트를 계기로 뒷면에서 다양한 이벤트를 펼치던 다운로드 서비스는 사라졌다.
대신 잡스cheduller 발동 시 이동하는 DownloadJob Service가 추가됐다.
"네트워크 상태가 바뀌면...", "다시 시도 횟수..."같은 논리는 모두 JobScheduller에 의뢰되었다.
DownloadProvider를 통해db가 insert/update/delete에 의해 처리되었을 때 KeepAlive식으로 처리된 곳은 JobSchedule에 대한 시간표 처리입니다.

DownloadTheread는 순전히Thread로 변한다


Download Service의 스레드 풀에서 이동하는 Runnable입니다.
Android-6.0
public class DownloadThread implements Runnable {
안드로이드 7.0의 기초는 JobScheduller에서 실행되는 서비스이기 때문에 이미 스레드 탱크의 개념이 없다.
Android-7.0
public class DownloadThread extends Thread {
DownloadJob 서비스와 DownloadTheread는 1대 1로 대응합니다.

좋은 웹페이지 즐겨찾기