用于任何android版本的通用异步任务
我正在制作一款android应用程序,它可以兼容2.3到4版本的android系统。。。我试图实现的是创建一个泛型类,它从AsyncTask扩展而来,可以用于在后台处理不同的任务。我一直在阅读,找到了这样的作品:用于任何android版本的通用异步任务,android,android-asynctask,android-4.0-ice-cream-sandwich,android-2.3-gingerbread,Android,Android Asynctask,Android 4.0 Ice Cream Sandwich,Android 2.3 Gingerbread,我正在制作一款android应用程序,它可以兼容2.3到4版本的android系统。。。我试图实现的是创建一个泛型类,它从AsyncTask扩展而来,可以用于在后台处理不同的任务。我一直在阅读,找到了这样的作品: AsyncTask task = new YourTask(); if (Build.VERSION.SDK_INT <= Build.VERSION_CODES.GINGERBREAD_MR1) { task.execute(params); } else {
AsyncTask task = new YourTask();
if (Build.VERSION.SDK_INT <= Build.VERSION_CODES.GINGERBREAD_MR1) {
task.execute(params);
} else {
task.executeOnExecutor(AsyncTask.THREAD_POOL_EXECUTOR, params);
}
AsyncTask task=newyourtask();
如果(Build.VERSION.SDK_INT将逻辑添加到被重写的execute()
方法中,那么只需调用YourTask.execute()
公共最终异步任务执行(Params…Params){
如果(Build.VERSION.SDK_INT
if (Build.VERSION.SDK_INT <= Build.VERSION_CODES.GINGERBREAD_MR1) {
new AsyncTask<Void, Void, Void>() {
@Override
protected Void doInBackground(Void... params) {
// Any task
return null;
}
@Override
protected void onPostExecute(Void aVoid) {
super.onPostExecute(aVoid);
}
}.execute();
} else {
new AsyncTask<Void, Void, Void>() {
@Override
protected Void doInBackground(Void... params) {
//Any task
return null;
}
@Override
protected void onPostExecute(Void aVoid) {
super.onPostExecute(aVoid);
}
}.executeOnExecutor(AsyncTask.THREAD_POOL_EXECUTOR);//This is the different thing.
}
public final AsyncTask<Params, Progress, Result> execute(Params... params) {
if (Build.VERSION.SDK_INT <= Build.VERSION_CODES.GINGERBREAD_MR1) {
super.execute(params);
} else {
super.executeOnExecutor(AsyncTask.THREAD_POOL_EXECUTOR, params);
}
}