android服务的bindSerrvice/startService
Posted wolflzc
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了android服务的bindSerrvice/startService相关的知识,希望对你有一定的参考价值。
1,高版本android已经不允许只通过action来bindService/startService,可以通过:
intent.setPackage("XXXX");
来指定应用的applicationID,注意这里并不是包名。所以,即是在两个应用中都存在同样包名、同样action的服务,也不会出现不知道绑定/启动哪一个服务的情况
2,AOSP android8.0和9.0中测试可以通过bindService/startService把服务进程拉起来。但是在搭载android9.0的三星S8+真机测试中发现,无法通过bindService/startService把服务进程拉起来,只有在服务进程已经存在的情况下,才能通过bindService获取到服务端的binder proxy。怀疑是三星对此作了限制,避免一个应用启动后拉起一堆其他服务的情况(流氓软件常见做法)
3,在已bindService的情况下,kill掉服务进程,服务进程会自动重新启动,再次被bind上,跑进onServiceConnected。
4,bindService后unbindService,服务端会跑进onUnbind和onDestroy,但服务进程并没有被销毁
以上是关于android服务的bindSerrvice/startService的主要内容,如果未能解决你的问题,请参考以下文章
尝试从我的 android 服务调用 web 服务时出现 android.os.NetworkOnMainThreadException 异常?