2014年1月12日 星期日

Android - Service onUnBind() 沒有呼叫的問題

在工作時發現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);
}

沒有留言:

張貼留言