我正在进行一个设计,在这个设计中,我正在处理catch块中捕获的所有异常,以便通过webservice调用发送到服务器。
这样做的想法是在做这项工作时完全不阻止主应用程序。我觉得阻塞队列模式很适合它。因此,我使用大小为10的数组实现创建了一个阻塞队列。在主应用程序的开始,我正在为这个队列初始化一个消费者线程。
然而,生产者方面对我来说有点令人困惑。根据我的理解,如果队列已满,如果主应用程序遇到异常,则执行producer.put(对象)将被阻塞,直到队列有空间,因此主应用程序也将阻塞。这是正确的理解吗?
发布于 2016-02-05 02:53:45
是的,你是对的。这是一个非常有用的table of BlockingQueue methods,通常有一个有界的队列是好的,但限制不应该很低。
发布于 2016-02-05 03:03:21
我认为,你应该把你的异常写入手机存储器(如果是安卓系统,就是SharedPreferences),而不是保存在主存中。首先,它不会阻止你的主应用程序。
在网络连接回调时,启动一个线程,该线程将读取共享首选项并将其发送到服务器。
https://stackoverflow.com/questions/35209056
复制相似问题