小编Ric*_*chi的帖子

谷歌驱动器pdf查看器不再适用于Android

我在android中有一个应用程序能够在Web视图中呈现PDF,pdf是在线托管的,我的一个要求是不在本地下载pdf.

直到几天前,我才能通过使用网址满足所有要求

https://docs.google.com/gview/viewer?embed=true&url=<pdf_url>
Run Code Online (Sandbox Code Playgroud)

现在,谷歌已经改变了这个网址.新网址如下:

https://drive.google.com/viewerng/viewer?embedded=true&url=<pdf_url>
Run Code Online (Sandbox Code Playgroud)

使用新的查看器,Android不再渲染pdf.相反,每次我尝试在查看器中加载pdf时,模拟器和设备都会显示以下图像:

加载pdf时出现问题

我该如何解决这个问题?

谢谢,

里克

pdf android webview google-drive-api

6
推荐指数
1
解决办法
4247
查看次数

持有锁时Java IllegalStateMonitorException

我在java中编写了一个实现双缓冲区的类.该类有两种方法可以写入两个缓冲区,另一种方法可以清除它们.然后我有三个线程:一个写入第一个缓冲区,另一个写入第二个缓冲区,第三个写入清除缓冲区.

在这里,我粘贴(一段)导致问题的代码(我知道它不正确,但我为了调试目的简化了它):

public void addAlpha(int toAdd){
synchronized (alphaCount) {
    while(alphaCount >= alpha.length){
        try {
        alphaCount.wait();
        } catch (InterruptedException e) {
        }
    }

    alpha[alphaCount] = toAdd;
    alphaCount++;
    }
}
Run Code Online (Sandbox Code Playgroud)

在这里我称之为notifyAll():

public void clear(){
    synchronized (alphaCount) {
        alphaCount = 0;
        alphaCount.notifyAll();
    }
}
Run Code Online (Sandbox Code Playgroud)

正如您所看到的,在addAlpha方法中,我获得了对alphaCount的锁定,测试条件然后等待alphaCount对象.

在clear方法中,我获得了对alphaCount的锁定,并在其上调用notifyAll().在运行时,我得到IllegalStateMonitorException ...

但我真的不知道错误在哪里:我检查了文档和多个论坛,没有任何运气......

谢谢你的时间和你的关注,里克.

java multithreading locking

2
推荐指数
1
解决办法
608
查看次数