收到 GCM 消息后开始下载任务

Start Download task when GCM message received

一旦设备收到 GCM 消息,我希望我的应用程序联系我的服务器以刷新其内容并下载新项目。我目前有一个 GcmListenerService 接收我的 GCM 消息。我将如何在新线程上启动下载,并确保我的服务在下载完成之前没有完成?我已经有一个自定义助手 class,我在其中启动我在后台线程上的下载,该线程通常在我的应用程序打开时运行。我想重用这个助手 class 来启动从 GcmListenerService 的下载。在我的下载完成之前,我如何告诉我的 GcmListenerService 没有完成?

此外,我想确保如果我的应用程序在下载操作期间打开,我可以挂钩以监听主 activity 的下载完成(因此我想使用我的下载助手 class).

你不能告诉 GcmListenerService 不完成。 GcmListenerService 中的 onMessageReceived() 不应被阻塞太长时间。

最好的选择是启动您自己的服务,例如来自 onMessageReceived() 的 IntentService 然后当它获取新数据时,您可以向您的应用程序发送订单广播,如果它是 运行,然后它可以获取新数据,如果你的应用程序不是运行,那就是它没有处理广播你可以启动你的应用程序。