我正在开发一个使用 Gmail API 同步用户电子邮件的 Android 应用程序。
为此,我实现了两项服务,第一项用于下载未读电子邮件,第二项用于下载已读电子邮件。每个服务都实现 Runnable 接口(interface),用于检索电子邮件并将它们存储在数据库中的代码是使用 Run() 方法中的线程处理的。
一切正常,我遇到的唯一问题是,当负责下载已读电子邮件的线程正在运行时(比另一个线程花费的时间更长),第二个线程(同步未读电子邮件)被阻止,直到第一个线程完成。
我想知道是否有办法让第二个线程优先于第一个线程,所以每当第一个线程运行而第二个线程必须运行时,代码应该将第二个线程暂停到第一个线程一封(未读电子邮件)完成运行,然后恢复暂停的线程。
问候。
最佳答案
如果您想创建第二个运行时间很短的服务,我建议您学习 AsyncTask,但如果您希望创建一个持续运行的服务,则需要使用 java.util。并发 API(执行器、线程池执行器)。希望我有所帮助,但通过一些阅读,您可以获得更多关于多线程应用程序的知识。如果您需要更多帮助,请告诉我!
关于java - Android - 如何并行运行多个线程,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38191806/