Java 类android.os.BaseBundle 实例源码
项目:nuclei-android
文件:TaskJobService.java
@Override
@SuppressWarnings("unchecked")
public boolean onStartJob(JobParameters params) {
try {
if (sTaskPool == null)
throw new NullPointerException("TaskJobService TaskPool not set!");
BaseBundle bundle = params.getExtras();
String taskName = bundle.getString(TaskScheduler.TASK_NAME);
Task task = (Task) Class.forName(taskName).newInstance();
ArrayMap<String, Object> map = new ArrayMap<>(bundle.size());
for (String key : bundle.keySet()) {
map.put(key, bundle.get(key));
}
task.deserialize(map);
if (task instanceof HttpTask)
Http.execute((HttpTask)task).addCallback(new JobCallback(params));
else
sTaskPool.execute(task).addCallback(new JobCallback(params));
return true;
} catch (Exception err) {
LOG.e("Error running task", err);
jobFinished(params, true);
return false;
}
}