当我使用 Android studio 方法跟踪来分析我的应用程序的电池消耗问题时,我观察到在应用程序被主页按钮暂停后周期性的 CPU 负载。这种负载是由属于 RxJava 的线程引起的。
从 RxJava github 源获取的代码可能会导致问题。
public static void start() {
for (;;) {
ScheduledExecutorService curr = PURGE_THREAD.get();
if (curr != null && !curr.isShutdown()) {
return;
}
ScheduledExecutorService next = Executors.newScheduledThreadPool(1, new RxThreadFactory("RxSchedulerPurge"));
if (PURGE_THREAD.compareAndSet(curr, next)) {
next.scheduleAtFixedRate(new ScheduledTask(), PURGE_PERIOD_SECONDS, PURGE_PERIOD_SECONDS, TimeUnit.SECONDS);
return;
} else {
next.shutdownNow();
}
}
}
Run Code Online (Sandbox Code Playgroud)
我试图更改清除周期时间,我在我的应用程序的 onCreate 应用程序中添加了以下代码,但它似乎不起作用。
System.setProperty("rx2.purge-period-seconds", "3600");
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
704 次 |
| 最近记录: |