【问题标题】:android path priority jobqueueandroid路径优先级作业队列
【发布时间】:2014-12-10 17:13:55
【问题描述】:

这个问题与路径 - android 的优先级作业队列有关。 我的问题是作业队列启动的线程在作业完成后没有被杀死。 我目前在应用类中有如下配置。

                   Configuration configuration = new Configuration.Builder(this)
          .customLogger(new CustomLogger() {
       private static final String TAG = "SS.JOBS";

            @Override
            public boolean isDebugEnabled() {
                return true;
            }

            @Override
            public void d(String text, Object... args) {
                Log.d(TAG, String.format(text, args));
            }

            @Override
            public void e(Throwable t, String text, Object... args) {
                Log.e(TAG, String.format(text, args), t);
            }

            @Override
            public void e(String text, Object... args) {
                Log.e(TAG, String.format(text, args));
            }
        }).minConsumerCount(0)// always keep at least one consumer alive
        .maxConsumerCount(3)// up to 3 consumers at a time
        .loadFactor(3)// 3 jobs per consumer
        .consumerKeepAlive(120)// wait 2 minute
        .build();
jobManager = new JobManager(this, configuration);

即使在我的工作完成后,我仍然永远“不允许我死”。 我一直将电话连接到 logcat,甚至在 2 天后,我在 logcat 中收到了这条线路。 特别是,这条线恰好每两分钟出现一次。 我需要有关如何将其配置为不发生的帮助。这意味着尽管作业已完成,但线程仍在运行,这是一种资源浪费。

在运行我的工作时,我不需要“requireNetwork”或坚持。 因此,我不会为此传递任何论据。 我的构造函数看起来像:

                   super(new Params(SsConstants.LOAD_NEWS_FEED_FROM_TABLE_JOB_PRIORITY));

logcat 消息是 -

 Thread 1206: Load factor check, true = (0 < 1)||(0*3 < 0 + 0) consumer thread : true
  didn't allow me to die re-running thread 1206
  rerunning consumer 1206

问候 巴尔加夫

【问题讨论】:

    标签: java android multithreading


    【解决方案1】:

    有点奇怪。尽量不要在您的配置中设置 minConsumerCount。如果您 minConsumerCount = 0

    ,则不应设置

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-12-20
      • 2011-03-20
      • 1970-01-01
      相关资源
      最近更新 更多