杀死服务后通知仍在栏中

时间:2013-09-26 09:47:19

标签: android service process kill

我有一个有趣的问题:

我开始我的活动,从这个活动我在另一个过程中启动我的服务。 启动服务后,它会在栏中显示通知。 通知是.setOngoing(true),所以只有当我从我的Activity中停止服务时它才会消失。

然后在Eclipse中,在设备选项卡中我杀了我的服务进程,但通知仍然存在! 要关闭它,我必须再次启动服务,然后必须停止它。

  

为什么我的通知不会与服务一起被杀死?

2 个答案:

答案 0 :(得分:1)

所以你说服务是在另一个进程上的吗?

我正在开发一个具有类似结构的应用程序。请查看" AbstractService" class和" ServiceManager"来自com.philippheckel.service包的课程。

Here are the classes

Here an Example

以下是我如何创建通知

使用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);

答案 1 :(得分:-1)

在停止服务时清除通知

如果没有清除通知

只需看看NotificationManager类如何清除。

http://developer.android.com/reference/android/app/NotificationManager.html