2011-06-29 68 views
0

我有一個Activity類和一個RestClient類。使用Javascript或ActionScript我簡單地在RestClient上定義事件監聽器,以便在出現問題時主類可以觸發某些函數。Android/Java和addEventListeners

閃存例如:

RestClient c = new RestCient() 
c.addEventListener(Event.DATA, dataHandler); 

function dataHandler(e:Event) 
{ 
... do something 
} 

什麼是做Android中的正確方法?主要的課程是活動。

Android的例子:

public class RestClient extends MyConnector 
{ 
    public RestClient() 
    { 
     ... 
    } 

    protected var onConnect() 
    { 
     dispatchEvent CONNECT ??? 
    } 

    protected var onClose() 
    { 
     dispatchEvent CLOSE ??? 
    } 

    ... 
} 

public class Main extends Activity 
{ 
    RestClient client; 

    @Override 
    public void onCreate(Bundle savedInstanceState) 
    { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.main); 

     client = new RestClient(); 
     client.addEventListener(CONNECT, connectHandler); ????? 
    } 

    protected void connectHandler(Event e) 
    { 
     Log.i("Yeah!", "Connected!"); 
    } 
} 

感謝。

回答

1

An AsyncTask可能是您用於處理來自ActionScript的此類事件的最接近的事情。您可以繼承AsyncTask的子類,然後在您的主要活動中對其進行定義,如下所示:

MyRestTask restTask = new MyRestTask<URL, Integer, Long>() { 
protected Long doInBackground(URL... urls) { 
    // instantiate an DefaultHTTPClient and call methods on it here 
} 

protected void onProgressUpdate(Integer... progress) { 
    // retrieve progress updates here 
} 

protected void onPostExecute(Long result) { 
    // process the response here 
} 
} 
+0

ha ... true我的朋友...您是絕對正確的。我有的問題是我不能繼承它,因爲RestTask已經從X擴展。 – xpepermint

相關問題