在工作時發現Service沒有如期的每次執行onUnBind(),在onUnBind要做的clean up工作只做了一次, 必須要Service重新onCreate(), onStartCommand()後onBind()才會重新被呼叫,解決方法如下:
Service在第一次被onBind()後將不會再執行onBind()
同時也不會再執行onUnBind()
希望Service在每次Activity離開執行unbindservice時執行onUnBind()
就必須在onUnBind() return true;
這樣下次activity bindSerivce()時, Service便會呼叫onReBind()
而且在unBindService()時, Service也會再次呼叫unBind()
依此可以操作一些clean up工作
代碼:
@Override
public boolean onUnbind(Intent intent) {
// TODO Auto-generated method stub
Log.i(TAG, "onUnbind");
bluelist.clear();
return true;
// return super.onUnbind(intent);
}
沒有留言:
張貼留言