在我正在开发的应用程序中,有一项后台任务可以完成一些繁重的工作。此任务需要经常执行,并涉及计算量大的某些对象的创建。现在,我了解最好不要在每次运行任务时创建这些对象,而是将它们保留为static
成员。
这就是我计划这样做的方式:
该任务是Service
,以onCreate
类
Application
方法启动
启动Service
后,重物被初始化
当需要运行任务时,会在服务上调用bindService
这是一个很好的方法吗?还有更好的吗?
答案 0 :(得分:0)
Service
在主线程上运行的问题。所以你的计划不会按你的意愿行事。我建议你创建一个单独的类来创建你的对象。
public class HeavyObjectsHolder {
private static volatile Object[] heavyObjects;
public static Object[] get(){
return heavyObjects;
}
public static void create(){
new Thread(new Runnable() {
@Override
public void run() {
//creation of heavy objects
heavyObjects = new Object[]{
//populating array
};
}
}).start();
}
}