Android意图服务+通知

问题描述:

我的应用程序中有任务在后台运行。这些任务可以在一个小时或更长时间内执行很长时间。Android意图服务+通知

有两个问题:

1)我需要向用户显示任务的状态。这个怎么做?每次创建通知?如何解决这个问题的最佳做法是什么?

2)是否有可能使该意图服务执行任务到最后而不是断开连接?

+0

是试试这个: - http://stackoverflow.com/a/43198270/6096821 –

+0

安迪,但如果MainActivity将被杀死当服务发送通知给MainActivity时,我们会捕获NullPointerException或类似的东西?因为您的广播接收器在没有MainActivity的情况下不存在。 – Delphian

+0

请仔细观看,因为广播已经在onResume中注册。 –

如果您希望您的服务在完成任务后继续运行IntentService不是最佳选择。您可以使用Foreground service来实现你的两个要求 - 显示通知给用户,并长期运行的任务

编辑:因为foreground service是它的主线程上运行只是正常的服务,让您`ll需要使用Async task的实际后台工作(或其他任何异步工作方式)。 在加副作用利用前景的服务,让系统少likelly停止您的长时间运行工作

+0

我没有想过,也是一个想法。该服务只会显示在通知栏中?这个解决方案有什么可能的问题? – Delphian

+0

该服务不会在批注栏中显示。它只会像普通服务一样运行,但会在前台进行线程处理.a.k.a系统将尝试不杀死它。 @Delphian ive使用pro和con编辑 – X3Btel

+0

我添加了startForeground()而不是NotificationManager.notify(),并且我的intentService不会终止并在应用程序关闭时工作。但是当我点击我的通知和应用程序再次启动我的intentService停止。如何改变这一点? – Delphian