如何处理计算重的对象创建

时间:2014-07-24 09:22:37

标签: android service binding

在我正在开发的应用程序中,有一项后台任务可以完成一些繁重的工作。此任务需要经常执行,并涉及计算量大的某些对象的创建。现在,我了解最好不要在每次运行任务时创建这些对象,而是将它们保留为static成员。

这就是我计划这样做的方式:

  1. 该任务是Service,以onCreate

  2. Application方法启动
  3. 启动Service后,重物被初始化

  4. 当需要运行任务时,会在服务上调用bindService

  5. 这是一个很好的方法吗?还有更好的吗?

1 个答案:

答案 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();
    }
}