Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/363.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ruby-on-rails/65.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java if/switch评估是原子的吗?_Java_Android_Asynchronous - Fatal编程技术网

Java if/switch评估是原子的吗?

Java if/switch评估是原子的吗?,java,android,asynchronous,Java,Android,Asynchronous,假设我启动并AsyncTask并持有对它的引用: AsyncTask task = new SomeAsyncTask().execute(); 然后在某个时刻,当任务仍在运行时,我执行以下操作: if(task.getStatus() == AsyncTask.Status.RUNNING) { task.cancel(true); } AsyncTask的状态能否在task.getStatus()==AsyncTask.status.RUNNING返回true并在调用cancel

假设我启动并
AsyncTask
并持有对它的引用:

AsyncTask task = new SomeAsyncTask().execute();
然后在某个时刻,当任务仍在运行时,我执行以下操作:

if(task.getStatus() == AsyncTask.Status.RUNNING) {
    task.cancel(true);
}
AsyncTask
的状态能否在
task.getStatus()==AsyncTask.status.RUNNING
返回
true
并在调用
cancel()
之前变为
FINISHED


换句话说,使用上面的代码
cancel()
是否可能在完成的
AsyncTask
上被调用?

是的,可能会发生,因此最好的方法是观察
状态变量值的变化,有关更多详细信息,请查看链接。

是的,这是可能的,这是异步编程的本质


但是,如果任务在这两个语句之间完成,您对
取消的调用将是良性的。

是的,这是可能的。是的,这是可能的。您可以在任务中使用wasCancelCalled()进行更多检查。如果您想在任务完成后执行某些操作,请使用onPostExecute。您将如何使用它来监视Android
异步任务的状态?我想注释中已经提到了这一点。检查一下。