我有一个AsyncTask类。
这是代码。
partition.vec <- function(vec, replace= FALSE, seed= 512L) {
set.seed(seed)
s <- sample(1:length(vec), size= floor(length(vec) / 2), replace= replace)
return(list(vec[s],vec[-s]))
}
# example:
v <- sample(1:100, size= 10)
partition.vec(v)
当调用onPostExecute方法时,我想在活动中获得布尔值。
感谢。
答案 0 :(得分:3)
您需要使用回调参考,然后通过它传递信息。
private class WaitSec extends AsyncTask<Void, Void, Boolean>{
public AsyncTaskCallback callback = null;
public WaitSec(AsyncTaskCallback callback){
this.callback = callback;
}
@Override
protected Boolean doInBackground(Void... params) {
try {
Thread.sleep(2000);
} catch (InterruptedException e) {
e.printStackTrace();
}
if(CheckSomeUtil.isItOk()) {
return true;
} else {
return false;
}
}
@Override
protected void onPostExecute(Boolean aBoolean) {
if(aBoolean)
// in this line. is i want to set listener.
if(callback != null) {
callback.onPostExecute(aBoolean);
}
super.onPostExecute(aBoolean);
}
public interface AsyncTaskCallback {
void onPostExecute(Boolean aBoolean);
}
}
Your Activity.java
public class YourActivity implements AsyncTaskCallback{
private WaitSec asyncTask;
@Override
public void onCreate(Bundle savedInstanceState) {
asyncTask = new WaitSec(this);
asyncTask.execute();
}
void onPostExecute(Boolean aBoolean){
// get the boolean here and do what ever you want.
}
}
答案 1 :(得分:1)
为什么不将此异步任务作为活动中的内部类,以便您可以访问活动的方法。
警告:如果处理不当,异步任务可以保留您的活动 实例,不会让它被垃圾收集。