Service的生命周期是多久?频率扫描分析法是什么意思?

2023-01-18 15:33:45 来源:创视网

下面我们依次分析每一步产生的影响,以便于完整地理解通过bindService启动的Service的生命周期:

点击ActivityA中的”bindService”按钮

由于初始情况下TestService实例不存在,也就是TestService没有运行。第一次调用bindService会实例化TestService,然后会执行其onBind方法,得到IBinder类型的实例,然后将其作为参数传入ActivityA的ServiceConnection的onServiceConnected方法中,标志着ActivityA与TestService建立了绑定连接,此时只有ActivityA这一个客户端client与TestService绑定。

点击ActivityA中的”start ActivityB”按钮,界面切换到ActivityB

点击ActivityB中的”bindService”按钮

由于TestService已经处于运行状态,所以ActivityB调用bindService时,不会重新创建TestService的实例,所以也不会执行TestService的onCreate回调方法,由于在ActivityA执行bindService的时候就已经执行了TestService的onBind回调方法而获取IBinder实例,并且该IBinder实例在所有的client之间是共享的,所以当ActivityB执行bindService的时候,不会执行其onBind回调方法,而是直接获取上次已经获取到的IBinder实例。并将其作为参数传入ActivityB的ServiceConnection的onServiceConnected方法中,标志着ActivityB与TestService建立了绑定连接,此时有两个客户单client(ActivityA和ActivityB)与TestService绑定。

点击ActivityB中的”unbindService”按钮

ActivityB执行了unbindService之后,ActivityB就与TestService解除了绑定。当没有任何client与Service处于绑定连接状态的时候,TestService才会执行onUnbind方法、onDestroy方法。但是由于此时还有ActivityA这个client与TestService处于绑定连接中,所以不会执行Service的onBind及onDestroy回调方法。

点击ActivityB中的”Finish”按钮

执行了ActivityB的finish方法后,ActivityB销毁了,界面返回到ActivityA

点击ActivityA中的”unbindService”按钮

ActivityA执行unbindService之后,ActivityA与TestService就解除绑定了,这样就没有客户端client与TestService相连,这时候Android会销毁TestService,在销毁前会先执行TestService的onUnbind方法,然后才会执行其onDestroy方法,这样TestService就销毁了。

频率扫描分析法

频率扫描分析法可以筛选出具有次同步振荡风险的系统运行方式,它是一种近似的线性方法。首先,建立风电机组并网系统的正序网络;其次,从待研究的风电机组看向并网系统侧,计算系统中的其他电网元件(主要包括其他风电机组、线路、变压器等)的次暂态等值阻抗;然后通过计算得到SSO等值电阻和SSO等值电抗随频率变化的曲线当SSO等值电抗在零附近所对应的次同步频率点上的SSO等值电阻小于零时,系统产生次同步振荡风险较高,而且等值电阻绝对值越大电气振荡越容易发散。

x 广告
x 广告

Copyright   2015-2022 财富赢家网版权所有  联系邮箱:920 891 263@qq.com

京ICP备2022016840号-48