gpt4 book ai didi

android - 如何将多个原始参数传递给 AsyncTask?

转载 作者:IT老高 更新时间:2023-10-28 13:11:48 26 4
gpt4 key购买 nike

有相关问题,如How can I pass in 2 parameters to a AsyncTask class? ,但我遇到了徒劳地尝试将多个原语作为参数传递给 AsyncTask 的困难,所以我想分享我的发现。现有的问题和答案中没有捕捉到这种微妙之处,因此我想帮助遇到与我相同的问题的任何人,并为他们减轻痛苦。

问题是这样的:我有多个 primitive 参数(例如两个长整数),我想将它们传递给 AsyncTask 以在后台执行 - 怎么做? (我的答案……在为此苦苦挣扎了一段时间之后……可以在下面找到。)

最佳答案

只需将您的原语包装在一个简单的容器中,并将其作为参数传递给 AsyncTask,如下所示:

private static class MyTaskParams {
int foo;
long bar;
double arple;

MyTaskParams(int foo, long bar, double arple) {
this.foo = foo;
this.bar = bar;
this.arple = arple;
}
}

private class MyTask extends AsyncTask<MyTaskParams, Void, Void> {
@Override
protected void doInBackground(MyTaskParams... params) {
int foo = params[0].foo;
long bar = params[0].bar;
double arple = params[0].arple;
...
}
}

这样调用它:

MyTaskParams params = new MyTaskParams(foo, bar, arple);
MyTask myTask = new MyTask();
myTask.execute(params);

关于android - 如何将多个原始参数传递给 AsyncTask?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12069669/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com