可以让AsyncTask在后台每隔X秒运行一次吗?

时间:2015-08-05 09:39:42

标签: java android android-asynctask

我的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秒运行一次。可以做到?我必须以另一种方式做到这一点吗?

感谢您的时间和回复。

0 个答案:

没有答案