我的Android应用程序中有一个AsyncTask,它通过套接字抓取一个整数数组,然后通过UI线程传递。
以下是代码
public class CardTask extends AsyncTask<ObjectInputStream, Void, int[]> {
private int[] arrayFromServer = new int[16];
public CardTask() {
}
@Override
protected void onPreExecute() {
super.onPreExecute();
}
@Override
protected int[] doInBackground(ObjectInputStream...params) {
ObjectInputStream ois = params[0];
try {
arrayFromServer = (int[]) (ois.readObject());
} catch (StreamCorruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return arrayFromServer;
}
@Override
protected void onProgressUpdate(Void...arg1) {
}
}
我以这种方式将数组传递给我的UI。
pickCardButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
myPlayer.addCardToMyPile(touchedCard);
/** AsyncTask Initiated */
new CardTask() {
@Override
public void onPostExecute(int[] result) {
cardsFromServer = result;
updateCards(cardsFromServer, pCards);
}
}.execute(ois);
}
});
代码运作良好,但我有一个问题。正如您所看到的,我的AsyncTask位于Button Listener
之下,如果没有按下按钮,我希望每隔X秒运行一次。可以做到?我必须以另一种方式做到这一点吗?
感谢您的时间和回复。