回想一下Android中的意图
我如何回忆Android Studio中的意图?回想一下Android中的意图,android,performance,android-intent,Android,Performance,Android Intent,我如何回忆Android Studio中的意图? 我正在尝试构建一个使用意图的服务。在某些情况下,如果活动未接收到意图,我会尝试发送一次广播,最多发送特定次数(比如X次)。X次之后,“静止活动”仍无法获得该意图,我想删除该意图,并对该活动执行其他一些操作。为了实现这一点,您可以通过作业广播事件,该作业可以重试发送事件所需的次数。订阅方活动订阅了此事件,并仅在事件已处理的情况下创建您的意图 从代码的角度来看,这可以实现为: 事件,将进行广播: class SomeEvent(val isSucce
我正在尝试构建一个使用意图的服务。在某些情况下,如果活动未接收到意图,我会尝试发送一次广播,最多发送特定次数(比如X次)。X次之后,“静止活动”仍无法获得该意图,我想删除该意图,并对该活动执行其他一些操作。为了实现这一点,您可以通过作业广播事件,该作业可以重试发送事件所需的次数。订阅方活动订阅了此事件,并仅在事件已处理的情况下创建您的意图 从代码的角度来看,这可以实现为: 事件,将进行广播:
class SomeEvent(val isSuccess: Boolean)
作业类,由您的服务启动的实例:
class SendCustomEventJob() : Job{
@Inject
@Transient
lateinit var eventBus: EventBus
// dagger jobs component injection
override fun inject(appComponent: AppComponent) {
super.inject(appComponent)
appComponent.inject(this)
}
override fun onRun() {
// some logic goes here, like API calls
eventBus.post(SomeEvent(true))
}
override fun shouldReRunOnThrowable(throwable: Throwable, runCount: Int, maxRunCount: Int): RetryConstraint {
if(runCount == 3)
// your custom job exceptions handling logic
}
override fun getRetryLimit(): Int = 3 // your custom retries number
override fun onAdded() { }
override fun onCancel(cancelReason: Int, throwable: Throwable?) {
eventBus.post(SomeEvent(false))
}
}
以及活动订阅服务器中事件的处理:
@Subscribe(threadMode = ThreadMode.MAIN)
fun onFetchedCustomEvent(event: SomeEvent) {
if (!event.isSuccess)
return
//create your intent here...
}