Android Foreground Service检查是否已创建

时间:2014-09-23 08:17:03

标签: android android-service android-notifications foreground-service

我的应用程序中有一项服务,它是一个药用应用程序,该服务应该在应用程序安装的整个过程中运行而不会被杀死。 所以我尝试了几种方法,尝试使用返回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也在运行时,多次重新创建服务,因为它正在与它进行主动通信)

1 个答案:

答案 0 :(得分:1)

关于第一个问题,请参阅here

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