android 8.0服务无法启动,完美解决Android8.0之后StartService报错问题

为了缩短冷启动时间,采取异步初始化sdk

步骤:

1.Application onCreate()

var intent = Intent(instance, InitSDKService::class.java)

intent.action ="com.initsdkservice.init"

if(Build.VERSION.SDK_INT >= Build.VERSION_CODES.O){

InitSDKService().enqueueWork(this,intent)

}else{

startService(intent)

}

2.

class InitSDKService : JobIntentService{

constructor() :super()

/**

* Unique job ID for this service.

*/

val JOB_ID =1000

/**

* Convenience method for enqueuing work in to this service.

*/

fun enqueueWork(context: Context, work: Intent) {

enqueueWork(context, InitSDKService::class.java,JOB_ID, work)

}

override fun onHandleWork(intent: Intent) {

//数据库初始化

DataManager.init(BaseApplication.instance)

}

}

3.AndroidManifest.xml

android:permission="android.permission.BIND_JOB_SERVICE">

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值