我有 3 项活动 A、B、C。在所有 3 个活动中,我都在使用异步任务。是否可以在单个异步任务(通用代码)下运行所有异步任务。
如果可能
1.如何检查从哪个活动调用哪个任务?
2、如何查看任务是否完成?
我有 3 项活动 A、B、C。在所有 3 个活动中,我都在使用异步任务。是否可以在单个异步任务(通用代码)下运行所有异步任务。
如果可能
1.如何检查从哪个活动调用哪个任务?
2、如何查看任务是否完成?
可能你想要一个通用异步任务来执行长时间运行的任务,并且你想要一个回调机制来使用它,你可以通过将异步任务类作为一个单独的抽象并实现一个回调接口来实现相同的任务。 带回调的异步类
对的,这是可能的。
创建您的 AsyncTask 类
public class MyTask extends AsyncTask<Void, Void, Void>
{
// Use a WeakReference instead of holding the Activity object
private WeakReference<Activity> mActivity;
public MyTask(Activity activity)
{
mActivity = new WeakReference<Activity>(activity);
}
@Override
protected Void doInBackground(Void... params)
{
// do common work
return null;
}
public Activity getActivity()
{
return mActivity.get();
}
public void setActivity(Activity activity)
{
mActivity = new WeakReference<Activity>(activity);
}
}
在每个活动中:
MyTask t = new MyTask(YourActivity.this)
{
@Override
protected void onPostExecute(Void result)
{
super.onPostExecute(result);
// do some work when finished
}
};