0
我有一个包含AsyncTask的android应用程序的问题。当我尝试调试它时,androidStudio将我带入asynctask的一段评论。如果这个问题是由问题引起的上库或如果问题是上巷道施工的逻辑我不理解:我有一类为什么我的AsyncTask类未被调试?
-fetch从UI然后
- 午餐的AsyncTask连接的整数到服务器并接收数据(把其上的变量),然后
-redraw用户界面和载于一个TextView
像代码数据:
public class MainActivity extends Activity
{
LinearLayout spazioGen;
TextView[] cell;
LinearLayout[] rows;
LinearLayout def;
LinearLayout solution;
private Socket client;
private PrintWriter printwriter;
private BufferedReader in;
private EditText textField;
private TextView serverOut;
private Button button;
private String messsage;
private String inputLine;
private Integer dimensionChoosed = 10;
private String word1 = "";
private String word2 = "";
@Override
protected void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
textField = (EditText) findViewById(R.id.dimension);
button = (Button) findViewById(R.id.findCenter);
button.setOnClickListener(new View.OnClickListener()
{
public void onClick(View v)
{
messsage = textField.getText().toString(); // get the text message on the text field
textField.setText(""); // Reset the text field to blank
dimensionChoosed = Integer.parseInt(messsage.toString());
SendMessage sendMessageTask = new SendMessage();
sendMessageTask.execute();
createGriglia();
}
});
}
private void createGriglia(Integer dimensionChoosed)
{
int i,j;
spazioGen = new LinearLayout(this);
spazioGen.setOrientation(LinearLayout.VERTICAL);
spazioGen.setLayoutParams(new ViewGroup.LayoutParams(ViewGroup.LayoutParams.WRAP_CONTENT, ViewGroup.LayoutParams.WRAP_CONTENT));
spazioGen.setBackgroundDrawable(getResources().getDrawable(R.drawable.border_ext));
spazioGen.setPadding(5, 5, 5, 5);
//create an array of textview to fillup with data received from server
setContentView(spazioGen);
}
private class SendMessage extends AsyncTask<Void, Void, Void>
{
@Override
protected Void doInBackground(Void... params)
{
try
{
client = new Socket("192.168.0.104", 4444); // connect to the server
printwriter = new PrintWriter(client.getOutputStream(), true);
printwriter.println(messsage); // write the message to output stream
printwriter.flush();
InputStreamReader inputStreamReader = new InputStreamReader(client.getInputStream());
BufferedReader bufferedReader = new BufferedReader(inputStreamReader); // get the client message
String message = "";
while ((message = bufferedReader.readLine()) != null && !(message.equals("flag")))
{
word1 = message;
//do stuff with data received
}
while ((message = bufferedReader.readLine()) != null)
{
word2 = message;
//do stuff with data received
}
inputStreamReader.close();
System.out.println(message);
printwriter.close();
client.close(); // closing the connection
} catch (UnknownHostException e)
{
e.printStackTrace();
} catch (IOException e)
{
e.printStackTrace();
}
return null;
}
@Override
protected void onPostExecute(Void aVoid)
{
createGriglia(dimensionChoosed);
}
}
}
在此先感谢
从您的设备中删除您的应用程序。清理你的项目并重新安装应用程序,看看它是否可以帮助你。 – Ahmed
干净的项目没有变化...现在我尝试重新启动并安装Android工作室的最后一个版本... – ocrampico
如果你把断点放在'client = new Socket(“192.168.0.104”, 4444);'?这个异常是否被'doInBackground'中的任何'catch'块捕获?你得到什么类型的问题? – kit