티스토리 뷰
안드로이드 개발은 배터리 소모에 대해서 별로 신경을 안쓰고, 만들었었다.
그러나, 사용자들의 눈높이도 높아지고, 이러한 앱들은 시스템에도 좋지 않고, 사용하고 싶어 하지도 않는다.
안드로이드 5.0부터는 JobService를 제공하여 주어서, 효율적으로 작업스케쥴을 걸수 있도록 하여 준다.
JobScheduler의 사용 내역은 다음과 같이 확인이 가능하다.
1. JobScheduler API의 구성
JobInfo - 제약사항의 기술
JobService - 제약사항에 대한 실행을 주최
예) 제약사항. 와이파이, 충전중일 경우에 서비스를 실행하도록 한다. 3600000후에는 종료 되도록 한다.
JobInfo job = new JobInfo.Builder(JOB_ID, new ComponentName(this, JService.class))
.setRequiredNetworksCapabilities(JobInfo.NETWORK_TYPE_UNMETERED)
.setPeriodic(15 * DateUtils.HOURS_IN_MILLIS)
.setRequiresCharging(true)
.setOverrideDeadline(3600000)
.build();
JobService mJobService = (JobScheduler)context.getSystemService(Context.JOB_SCHEDULER_SERVICE);
mJobService.scheduleJob(job);
자세한 내용은 JobInfo.Builder (https://developer.android.com/reference/android/app/job/JobInfo.Builder.html) 을 참조
2. JobService 확장하기
스케쥴을 더욱 상세하게 사용하고 싶을 경우에 사용하도록 한다.
Manifest file에 등록
<service
android:name="com.test.TestJobService"
android:permission="android.permission.BIND_JOB_SERVICE"
android:exported="true" />
다음과 같은 메소드로 작업에 대한 호출이 된다.
스케쥴이 시작될때 추가적으로 사용하여야 할 부분들을 넣도록 한다.
public class TestJobService extends JobService {
@Override
public boolean onStartJob(JobParameters jobParameters) {
// 작업을 넣으시오.
return true;
}
@Override
public boolean onStopJob(JobParameters params) {
// 끝나는가...
return false;
}
}
역시 자세한것은 레퍼런스를 보도록.
'Mobile > Android' 카테고리의 다른 글
[Android] RemoteControlClient의 폐기로 인한 Notification (0) | 2016.07.26 |
---|---|
[Android] NotificationCompat + 5.0 (0) | 2016.07.26 |
[Android]TextBold 적용 (0) | 2016.07.12 |
[Android]WebView Tip (0) | 2016.04.05 |
[Android]Layout에 View가 addView 되었을 경우 순서 (0) | 2016.01.07 |
- Total
- Today
- Yesterday
- git
- go
- php
- Windows
- golang
- tomcat
- Linux
- war
- Kotlin
- rxswift
- docker
- windows10
- Python
- nodejs
- cocoapods
- SWIFT
- android
- intellij
- ubuntu
- Codable
- centos8
- Gradle
- enum
- MySQL
- Spring
- github
- Xcode
- Java
- ios
- CentOS
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |