Подтвердить что ты не робот

Android: запуск переднего плана не будет отображаться правильно

Я работаю над приложением, которое использует службу переднего плана. для этого я startForeground(id,Notification) изнутри обратного вызова onStartCommand.

Я использую построитель уведомлений для создания моего уведомления, но когда я передаю его в startForeground, только текст тикера отображается, когда я его устанавливаю, все остальное переходит в значение по умолчанию, то есть в заголовке указано, что "выполняется, пока я его установил в" онлайн ",

Кроме того, все, что я установил с помощью метода setText и setInfo в уведомлении. Builder не отображается, вместо этого отображается текст по умолчанию, например "touch для получения дополнительной информации или для остановки приложения".

здесь соответствующий код:

Обслуживание:

private final int NOTIFICATION_ID=1;

    @Override
    public int onStartCommand(Intent intent, int flags, int startId) {
        Toast.makeText(this,"EDI: Core service Started" , Toast.LENGTH_LONG).show();
        startForeground(NOTIFICATION_ID, CoreServiceNotification.getNotification(this, "EDI is online", "Online","Online and running","EDI just started"));
        return super.onStartCommand(intent, flags, startId);
    }

CoreServiceNotification:

public class CoreServiceNotification {

        public static Notification getNotification(Context context,String title,String text,String info,String tickerText){
            Notification.Builder notificationBuilder= new Notification.Builder(context);
            notificationBuilder.setContentTitle(title);
            notificationBuilder.setContentText(text);
            notificationBuilder.setContentInfo(info);
            notificationBuilder.setTicker(tickerText);
            notificationBuilder.setLights(0x00ffff00, 1000, 0);
            return notificationBuilder.build();
        }

    }

РЕЗУЛЬТАТ: enter image description here

4b9b3361

Ответ 1

Я считаю необходимым сначала установить smallIcon при создании уведомления.

Notification.Builder notificationBuilder= new Notification.Builder(context);
notificationBuilder.setSmallIcon(R.drawable.yourIcon);
// then set other staff...

Вот еще один простой пример из класса Cousera Android, нажмите здесь