我们如何在 Scala 中使用 android JobIntentService?
How can we use the android JobIntentService in the Scala?
我可以成功扩展和调用 JobIntentService 的函数
enqueueWork(context, MessagesRetentionKotlin::class.java, UNIQUE_JOB_ID, work)
在 kotlin 中,但不在 Scala 中。在这里,我分享了 class 扩展 JobIntentService 的 Scala 代码,如果有人能帮助我,那将是很棒的。谢谢
class MessagesRetention(context: Context, work: Intent) extends MessagesRetentionTrait with JobIntentService{
override def onCreate():Unit= {
super.onCreate()
Log.d(TAG, "onCreate")
}
override def onHandleWork(intent: Intent):Unit= {
Log.d(TAG, "onHandleWork")
val input: String = intent.getStringExtra("inputExtra")
for (i <- 0 to 10) {
Log.d(TAG, "$input - $i")
if (isStopped) return
SystemClock.sleep(1000)
}
}
override def onDestroy():Unit= {
super.onDestroy()
Log.d(TAG, "onDestroy")
val serviceIntent = new Intent(this, MessagesRetentionImpl.getClass)
serviceIntent.putExtra("inputExtra", "Test")
MessagesRetention.enqueueWorkk(this, serviceIntent)
}
}
object MessagesRetention {
private val TAG = "MessagesRetention"
val UNIQUE_JOB_ID = 10101
def enqueueWorkk(context: Context, work: Intent):Unit= {
enqueueWork(context, MessagesRetentionImpl.getClass, UNIQUE_JOB_ID, work)
}
}
作为 scala 的新手,我没有将正确的服务上下文传递给 JobIntentService 的 enqueueWork
方法。我没有使用 .getclass
方法,而是使用 classOf[T]
进行服务 class 传递并且它起作用了。
enqueueWork(context, classOf[MessagesRetention], UNIQUE_JOB_ID, work)
我可以成功扩展和调用 JobIntentService 的函数
enqueueWork(context, MessagesRetentionKotlin::class.java, UNIQUE_JOB_ID, work)
在 kotlin 中,但不在 Scala 中。在这里,我分享了 class 扩展 JobIntentService 的 Scala 代码,如果有人能帮助我,那将是很棒的。谢谢
class MessagesRetention(context: Context, work: Intent) extends MessagesRetentionTrait with JobIntentService{
override def onCreate():Unit= {
super.onCreate()
Log.d(TAG, "onCreate")
}
override def onHandleWork(intent: Intent):Unit= {
Log.d(TAG, "onHandleWork")
val input: String = intent.getStringExtra("inputExtra")
for (i <- 0 to 10) {
Log.d(TAG, "$input - $i")
if (isStopped) return
SystemClock.sleep(1000)
}
}
override def onDestroy():Unit= {
super.onDestroy()
Log.d(TAG, "onDestroy")
val serviceIntent = new Intent(this, MessagesRetentionImpl.getClass)
serviceIntent.putExtra("inputExtra", "Test")
MessagesRetention.enqueueWorkk(this, serviceIntent)
}
}
object MessagesRetention {
private val TAG = "MessagesRetention"
val UNIQUE_JOB_ID = 10101
def enqueueWorkk(context: Context, work: Intent):Unit= {
enqueueWork(context, MessagesRetentionImpl.getClass, UNIQUE_JOB_ID, work)
}
}
作为 scala 的新手,我没有将正确的服务上下文传递给 JobIntentService 的 enqueueWork
方法。我没有使用 .getclass
方法,而是使用 classOf[T]
进行服务 class 传递并且它起作用了。
enqueueWork(context, classOf[MessagesRetention], UNIQUE_JOB_ID, work)