我有一个有趣的问题:
我开始我的活动,并从这个活动开始我在另一个进程中的服务。当服务启动时,它会在栏中显示一条通知。通知带有 .setOngoing(true),因此只有当我从我的活动中停止服务时它才会消失。
然后在 Eclipse 中,在设备选项卡中我终止了我的服务进程,但通知仍然存在!要关闭它,我必须再次启动服务,然后必须停止它。
为什么我的通知没有与服务一起被杀死?
所以你说服务在另一个进程上?
我正在开发一个具有类似结构的应用程序。请查看 com.philippheckel.service 包中的“AbstractService”类和“ServiceManager”类。
使用 Compat.Builder 与较旧和较新的 android 版本兼容
NotificationCompat.Builder mBuilder =
new NotificationCompat.Builder(this)
.setSmallIcon(R.drawable.ic_launcher)
.setContentTitle(getResources().getString(R.string.service_header))
.setContentText("Connect to: http://" + httpd.getip() + ":8080")
.setContentIntent(pendingIntent)
.setOngoing(true);
NotificationManager notificationManager = (NotificationManager) getSystemService(Context.NOTIFICATION_SERVICE);
notificationManager.notify(01, mBuilder.build());
看到我再次使用相同的 ID 了吗?这个非常重要
NotificationManager notificationManager = (NotificationManager) getSystemService(Context.NOTIFICATION_SERVICE);
notificationManager.cancel(01);
在停止服务时清除通知
如果不清除通知
只需查看 NotificationManager 类即可了解如何清除。
http://developer.android.com/reference/android/app/NotificationManager.html