fbapirequestworker.java

来自「Sony Ericsson手机上的Facebook客户端全套代码」· Java 代码 · 共 88 行

JAVA
88
字号
// Decompiled by Jad v1.5.7g. Copyright 2000 Pavel Kouznetsov.
// Jad home page: http://www.geocities.com/SiliconValley/Bridge/8617/jad.html
// Decompiler options: packimports(3) 
// Source File Name:   FbAPIRequestWorker.java

package com.sonyericsson.fb.api.request;

import java.util.Vector;

// Referenced classes of package com.sonyericsson.fb.api.request:
//            IFbAPIRequest

public class FbAPIRequestWorker
    implements Runnable
{

    private FbAPIRequestWorker()
    {
        _requests = new Vector();
        _thread = null;
    }

    public static FbAPIRequestWorker getInstance()
    {
        if(_instance == null)
            _instance = new FbAPIRequestWorker();
        return _instance;
    }

    public void addAPIRequest(IFbAPIRequest request)
    {
        if(_thread == null)
        {
            _requests.addElement(request);
            _thread = new Thread(this);
            _thread.start();
        } else
        {
            synchronized(this)
            {
                _requests.addElement(request);
            }
        }
    }

    public void clearAllRequests()
    {
        synchronized(this)
        {
            for(int i = 0; i < _requests.size(); i++)
            {
                IFbAPIRequest request = (IFbAPIRequest)_requests.elementAt(i);
                request.cancelRequest();
            }

            _requests.removeAllElements();
        }
    }

    public void run()
    {
        do
        {
            IFbAPIRequest request = null;
            synchronized(this)
            {
                if(_requests.size() > 0)
                {
                    request = (IFbAPIRequest)_requests.firstElement();
                    _requests.removeElementAt(0);
                } else
                {
                    _thread = null;
                }
            }
            if(request != null)
                request.runRequest();
            else
                return;
        } while(true);
    }

    private static FbAPIRequestWorker _instance = null;
    private Vector _requests;
    private Thread _thread;

}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?