Android Service 中 调用view的setVisibility不起作用

背景:
service中 onStartCommand方法里获取windowManager,以及inflate了xml的布局文件,并初始化了view的对象(findViewById),在onDestroy方法中隐藏或者销毁view,隐藏view时不起作用,即调用setVisibility(View.GONE) 无效

修改方案:将windowManager的获取以及view对象的初始化放到onCreate方法中,问题解决。
由于onStartCommand会被重复调用,因此在onStartCommand中申请了资源或添加了Window,然后在onDestory中释放的逻辑有问题,重复调用onStartCommand方法会在上次资源或window没有释放的情况下重新申请,这样就会产生莫名其妙的问题

参考
浅析Android Service 中 onStartCommand方法及注意事项
android的Service中onCreate与onStartCommand的区别

猜你喜欢

转载自blog.csdn.net/w690333243/article/details/115496021