1

我的应用程序中有一项服务,它是一个医疗应用程序,并且该服务应该在安装应用程序的整个过程中运行而不会被杀死。所以我尝试了几种方法,尝试了常规服务返回START_STICKY,但这并没有完全按照预期重新创建服务。然后我决定尝试使用前台服务。我正在创建它赢得服务 onStartCommand 像这样

    startForeground(FOREGROUND_ID, buildForegroundNotification());
    return START_STICKY;
}

private Notification buildForegroundNotification() {
    NotificationCompat.Builder b = new NotificationCompat.Builder(this);
    b.setOngoing(true);
    b.setContentTitle("My App");
    b.setContentText("Therapy is running");
    b.setSmallIcon(R.drawable.ic_launcher);
    return (b.build());
}

所以我有两个问题: - 前台服务可以被Android杀死吗?- 如何检查通知是否已经创建,因此它不会在每次服务启动时创建它(当 Activity 也在运行时,服务会被多次重新创建,因为它正在与它进行主动通信)

4

1 回答 1

2

对于第一个问题,请参见此处

第二个问题:我想你正在使用myNotificationManager.notify(int id, Notification notification). ID 字段用于标识您要显示的通知类型,因此为相同类型的通知设置相同的 ID 会将旧通知替换为新创建的通知(如果仍然显示旧通知)或简单地显示一个新的(参见NotificationManager 文档)。

于 2014-09-23T09:01:00.633 回答