我正在创建一个游戏,在客户端我应该从服务器获取一些数组并将它们显示在屏幕上。我可以按X按钮X次以获得X阵列。
目前我正在使用此代码
rollDiceButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
rollDice();
try {
int[] tempArray = new GetDiceTask().execute(socket).get();
printDice(tempArray,pDice);
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (ExecutionException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
但是如果我不喜欢这个数组并且我想要另一个我不能使用AsyncTask,因为我得到了Cannot execute task: the task has already been executed (a task can be executed only once)
的常见错误。
这是我的AsyncTask代码。
@Override
protected int[] doInBackground(Socket...params) {
Socket soc = params[0];
try {
ObjectInputStream ois = new ObjectInputStream(soc.getInputStream());
int[] tempArray = (int[]) (ois.readObject());
return tempArray;
} catch (IOException | ClassNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return null;
}
有没有一种方法可以在没有该例外的情况下使用多个数组?