我有3个活动A,B,C。在我正在使用异步任务的所有3个活动中。是否可以在单个异步任务(公共代码)下运行所有异步任务。
如果可能的话
1.如何检查从哪个活动调用哪个任务?
2.如何检查任务是否完成?
答案 0 :(得分:1)
可能你想拥有一个Common Async任务,可以用来执行长时间运行的taks,你想要一个回调机制来使用它, 您可以通过将异步任务类作为单独的抽象并通过实现回调接口来实现相同的功能。 Async Class with callback
答案 1 :(得分:0)
是的,这是可能的。
答案 2 :(得分:0)
创建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
}
};