val intent =Intent(this,MyService::class.java) startForegroundService(intent)
启动了服务 val job = Job()
val mCoroutineScope = CoroutineScope(job)
val notification = NotificationCompat.Builder(service, "1")
.setContentTitle("test")
.setSmallIcon(R.drawable.ic_action_name)
.setAutoCancel(true)
startForeground(1,notification.setContentText("")
.build())
stopForeground(true)
最后创建了一个协程,在协程中从服务器获取最新消息并通知 具体过程如下:
mCoroutineScope.launch{
while(true)
{
val content = 从网络中获取消息
val notfi = notification.setContentText(content)
.setContentIntent(pending)
.build()
notificationManager.notify(id, notfi)
}
}
我的问题是: 启动服务后,把 app 拉到了后台,当服务运行一会后,消息就不会再弹出,就需要再次进入 app 界面,消息又开始弹出,如此往复。并不能像微信那样拉到后台后,后台服务不会暂停,消息会及时的弹出。
这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。
V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。
V2EX is a community of developers, designers and creative people.