Java AsyncTask执行,但只是有时执行
因此,我使用此代码调用我的AsyncTaskJava AsyncTask执行,但只是有时执行,java,android,android-asynctask,Java,Android,Android Asynctask,因此,我使用此代码调用我的AsyncTask Log.d("before","make_connection"); new Make_Connection().execute(); Log.d("after","make_connection"); 我的班级 private class Make_Connection extends AsyncTask<Void,Void,String>{ final int port = 4445; @Override
Log.d("before","make_connection");
new Make_Connection().execute();
Log.d("after","make_connection");
我的班级
private class Make_Connection extends AsyncTask<Void,Void,String>{
final int port = 4445;
@Override
protected void onPreExecute() {
Toast.makeText(KeyboardActivity.this,"This runs",Toast.LENGTH_LONG).show();
}
@Override
protected String doInBackground(Void... params) {
Log.d("Connection","Started");
Log.e("Connec","this runs");
try {
socket = new Socket(IP,port);
//dout = new DataOutputStream(socket.getOutputStream());
//dout.writeUTF("Connection Formed");
} catch (IOException e) {
e.printStackTrace();
}
return null;
}
protected void onPostExecute(String result) {
Toast.makeText(KeyboardActivity.this,"Connection Made",Toast.LENGTH_SHORT).show();
}
}
但有一半的时间我看不到
Log.d("Connection","Started");
Log.e("Connec","this runs");
即使onPreExecute()
每次都能正常运行。
我在运行7.1和7.0的两个不同手机上进行了测试
有人能告诉我为什么会发生这种情况吗?默认情况下,任务是按顺序运行的。他们都在同一个执行人身上执行。从这里开始 如果确实需要并行执行,可以调用 executeOnExecutor(java.util.concurrent.Executor,对象[])与 线程池执行器
默认情况下,异步任务按顺序运行。他们都在同一个执行人身上执行。从这里开始 如果确实需要并行执行,可以调用 executeOnExecutor(java.util.concurrent.Executor,对象[])与 线程池执行器 尝试: 而不仅仅是
new Make_Connection().execute();
这是必需的,因为在Android SDK 13或更高版本中,默认情况下它们是串行运行的。因此,如果要同时运行多个AsyncTask
,请使用executeOnExecutor(AsyncTask.THREAD\u POOL\u EXECUTOR)
有关更多详细信息,请参见执行顺序下的说明
而不仅仅是
new Make_Connection().execute();
这是必需的,因为在Android SDK 13或更高版本中,默认情况下它们是串行运行的。因此,如果要同时运行多个AsyncTask
,请使用executeOnExecutor(AsyncTask.THREAD\u POOL\u EXECUTOR)
有关更多详细信息,请参见执行顺序下的解释,从此应用程序中有多少异步任务?3一个与此任务并行运行,另一个在此任务之前执行这是问题所在。你必须告诉他们并行运行我是android新手,所以你能告诉我一些关于我是如何做到这一点的文档吗?你在这个应用程序中有多少异步任务?3一个与这个并行运行,另一个在这个之前执行这是问题所在。你必须告诉他们并行运行我是android新手,所以你能告诉我一些关于如何运行的文档吗?答案是这样的。一个活动不能同时运行两个异步任务吗?它可以,使用executeOnExecutor()。一个活动不能同时运行两个异步任务吗?它可以,使用executeOnExecutor()。
new Make_Connection().execute();