【发布时间】:2019-06-28 06:55:01
【问题描述】:
我正在尝试开发JobScheduler,并且我希望应用程序在被系统杀死时每 1 分钟执行一次。
AndroidManifest.xml
<service
android:name=".BaiduPush.BaiduJobService"
android:enabled="true"
android:permission="android.permission.BIND_JOB_SERVICE"/>
MainActivity
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
binding = DataBindingUtil.setContentView(this, R.layout.activity_main2)
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {
startJobService()
}
}
private fun startJobService() {
Log.d(TAG,"startBaiduJobService")
val JOB = 10
val jobScheler = getSystemService((Context.JOB_SCHEDULER_SERVICE)) as JobScheduler
val jobinfo = JobInfo.Builder(JOB, ComponentName(packageName,BaiduJobService::class.java.name))
//.setPeriodic(AlarmManager.INTERVAL_FIFTEEN_MINUTES)
.setOverrideDeadline(60000)
.setPersisted(true)
.build()
jobScheler.schedule(jobinfo)
}
百度招聘服务
class BaiduJobService : JobService() {
val TAG = "BaiduJobService"
override fun onStartJob(params: JobParameters?): Boolean {
Log.d(TAG,"BaiduJobService onStartJob")
return true
}
override fun onStopJob(params: JobParameters?): Boolean {
return false
}
}
当我使用setPeriodic(AlarmManager.INTERVAL_FIFTEEN_MINUTES) 时。 onStartJob 尚未被调用。
当我使用setOverrideDeadline(60000) 时。 onStartJob 第一次只显示一次。
但是时间到了,BaiduJobService 似乎没有被调用。
我错过了什么吗?提前致谢。
【问题讨论】:
-
保持最小间隙。
-
@AbhayKoradiya 你能详细解释一下吗?
标签: android android-jobscheduler jobservice