4

我有一个有趣的问题:

我开始我的活动,并从这个活动开始我在另一个进程中的服务。当服务启动时,它会在栏中显示一条通知。通知带有 .setOngoing(true),因此只有当我从我的活动中停止服务时它才会消失。

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

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

4

2 回答 2

1

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

我正在开发一个具有类似结构的应用程序。请查看 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);
于 2015-01-02T13:13:55.813 回答
-1

在停止服务时清除通知

如果不清除通知

只需查看 NotificationManager 类即可了解如何清除。

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

于 2013-09-26T10:47:22.023 回答