小编Aiv*_*ras的帖子

方法:ServiceWorker检查是否准备好更新

我想要实现的目标:

  • 用loader/spinner渲染页面

  • 如果service-worker.js已注册并处于活动状态,则检查更新

    • 如果没有更新,则删除加载程序
    • 如果updatefound安装了新版本,则重新加载页面
  • 否则注册 service-worker.js
    • 什么时候updatefound,意味着新的安装,删除装载机

我正在使用sw-precache模块生成service-worker.js并遵循注册码:

window.addEventListener('load', function() {

  // show loader
  addLoader();

  navigator.serviceWorker.register('service-worker.js')
    .then(function(swRegistration) {

      // react to changes in `service-worker.js`
      swRegistration.onupdatefound = function() {
        var installingWorker = swRegistration.installing;
        installingWorker.onstatechange = function() {
          if(installingWorker.state === 'installed' && navigator.serviceWorker.controller){

            // updated content installed
            window.location.reload();
          } else if (installingWorker.state === 'installed'){

            // new sw registered and content cached
            removeLoader();
          }
        };
      }

      if(swRegistration.active){
        // here I know that …
Run Code Online (Sandbox Code Playgroud)

javascript service-worker sw-precache

16
推荐指数
1
解决办法
1525
查看次数

如何修复记录为警告的“android.enableSeparateAnnotationProcessing 是实验性的且不受支持”?

我在gradle.properties文件中添加了一个新选项:

android.enableSeparateAnnotationProcessing=true

但是我从编译器/构建器那里得到了以下警告:

警告:该选项设置 android.enableSeparateAnnotationProcessing=true是实验性的,不受支持。

我也试图做到这一点false,但我收到以下消息:

Gradle 可能会禁用增量编译,因为以下注解处理器不是增量编译器:compiler-1.1.1.jar (android.arch.persistence.room:compiler:1.1.1), compiler-4.8.0.jar (com.github.bumptech .glide:compiler:4.8.0)、butterknife-compiler-8.6.0.jar (com.jakewharton:butterknife-compiler:8.6.0)。考虑在 gradle.properties 文件中设置实验性功能标志 android.enableSeparateAnnotationProcessing=true 以在单独的任务中运行注释处理并使编译增量。


环境:

JRE 1.8.0_152-release-1136-b06 amd64
JVM OpenJDK 64-Bit Server VM by JetBrains sro
Android Studio 3.2.1 Build #AI-181.5540.7.32.5056338
Gradle 4.10.3
Android Gradle.1插件:3.

安卓文档:

当您包含此标志时,Android Gradle 插件会在单独的任务中执行注释处理器,并允许 Java 编译任务以增量方式运行。 https://developer.android.com/studio/releases/gradle-plugin

android gradle android-gradle-plugin

5
推荐指数
1
解决办法
1万
查看次数