startForeground() does not show my Notification

后端 未结 6 634
悲哀的现实
悲哀的现实 2020-12-08 18:58

I am trying to make my Service running in foreground. I tried to use this example (please look for the section \"Running a Service in the Foreground\")

相关标签:
6条回答
  • 2020-12-08 19:21

    This might be an old thread, but I'd like to add what I just learned which is not mentioned yet:

    It is possible that a Service is still alive after stopSelf() is called because there are Activity that have bound to the Service. As a matter of fact, the startForeground() is just not going to show the notification nor giving any exception in this circumstance.

    0 讨论(0)
  • 2020-12-08 19:38

    DMitry. I have just suffered your problem and found the cause.

    If your app is changing state of a COMPONENT PackageManager.setComponentEnabledSetting()) Android removes the service from foregraound and its notification icon.

    Bug reported at Nov, 2011

    0 讨论(0)
  • 2020-12-08 19:38

    in my case there was no notification after startForeground(...) invoke because I used only .setSubText(...) for setting the message of it (because it is rendered with smaller font on most of devices). But some of devices Xiaomi Redmi Note 4 won't show any notification if You not set message by using .setContentText(...).

    Hope that will help someone

    0 讨论(0)
  • 2020-12-08 19:39

    I just noticed that startForeground() doesn't show the notification icon if the id parameter is set to 0...

    startForeground(0, notification); // Doesn't work...
    
    startForeground(1, notification); // Works!!!
    

    I hope that it could help someone stuck on this.

    0 讨论(0)
  • 2020-12-08 19:40

    in addition to the best answer. you should also check that have you called setSmallIcon. On my android phone, I cannot get what I expected without calling setSmallIcon

    0 讨论(0)
  • 2020-12-08 19:40

    Is your service a started service or a bound service? I had the same issue with a bound service, but starting the service before binding it allowed me to call startForeground(int, notification) with and have the notification show up.

    0 讨论(0)
提交回复
热议问题