我有一个只包含各种数据库查询的静态函数的类。由于它们都与网络相关,我需要在另一个线程中执行该代码。我正在尝试找到实现这一点的最佳方法。
public class MyClass {
public static void someFunction() {
...
}
public static void anotherFunction() {
...
}
}
我正在考虑这样做:
public class MyClass {
public static void someFunction() {
new AsyncTask<Void, Void, Void>() {
@Override
protected Void doInBackground(Void... params) {
...
}
}
}
public static void anotherFunction() {
new AsyncTask<Void, Void, Void>() {
@Override
protected Void doInBackground(Void... params) {
...
}
}
}
}
或者当我调用这些函数时创建一个新线程:
new AsyncTask<Void, Void, Void>() {
@Override
protected Void doInBackground(Void... params) {
MyClass.someFunction();
}
}
new AsyncTask<Void, Void, Void>() {
@Override
protected Void doInBackground(Void... params) {
MyClass.anotherFunction();
}
}
最后,我想知道是否有一种方法可以运行与主线程并行的单个线程,该线程将专门处理这些函数调用。主线程将调用这些函数,而另一个线程将运行它们。
有没有人对实现这一点的最佳方法有任何想法?谢谢!