Notification on android is not displayed

1

I have a problem with my app, it for some reason does not show the notification but log.i runs normally!

Code:

    package imm.pt.immsmart;

import android.app.Notification;
import android.app.NotificationManager;
import android.app.Service;
import android.content.Intent;
import android.graphics.BitmapFactory;
import android.media.Ringtone;
import android.media.RingtoneManager;
import android.net.Uri;
import android.os.IBinder;
import android.support.v4.app.NotificationCompat;
import android.util.Log;

import java.util.ArrayList;
import java.util.List;

public class ServicoPush extends Service{

    public List<Worker> threads = new ArrayList<Worker>();

    @Override
    public IBinder onBind(Intent intent) {
        return null;
    }
    @Override
    public void onCreate(){
        super.onCreate();
    }
    @Override
    public int onStartCommand(Intent intent, int flags, int startId){
        Worker w = new Worker(startId);
        w.start();
        threads.add(w);
        return(super.onStartCommand(intent, flags, startId));

    }
    class Worker extends Thread{
        public int startId;
        public boolean ativo = true;

        public Worker(int startId){
            this.startId = startId;
        }

        public void run(){
            while (ativo){
                try {
                    Thread.sleep(3000);
                    Log.i("teste", "ok");
                    //Notificação
                    NotificationManager nm = (NotificationManager) getSystemService(NOTIFICATION_SERVICE);
                    NotificationCompat.Builder builder = new NotificationCompat.Builder(ServicoPush.this);
                    builder.setTicker("Limite de Dados Moveis");
                    builder.setContentTitle("IMM SMART");
                    builder.setContentText("Estas quase a atingir o teu limite de dados!");
                    builder.setSmallIcon(R.drawable.ic_launcher_background);
                    builder.setLargeIcon(BitmapFactory.decodeResource(getResources(), R.drawable.ic_launcher_background));
                    Notification n = builder.build();
                    n.vibrate = new long[]{150, 300, 150, 600};
                    nm.notify(R.drawable.ic_launcher_background, n);
                    try{
                        Uri som = RingtoneManager.getDefaultUri(RingtoneManager.TYPE_NOTIFICATION);
                        Ringtone toque = RingtoneManager.getRingtone(ServicoPush.this, som);
                        toque.play();
                    }catch (Exception e) {e.printStackTrace();}
                    ativo = false;
                } catch (InterruptedException e) {
                    e.printStackTrace();
                }
            }
        }
    }
    @Override
    public void onDestroy(){
        super.onDestroy();
        for(int i = 0, tam = threads.size(); i < tam; i++){
            threads.get(i).ativo = false;
        }
    }
}
    
asked by anonymous 22.08.2018 / 13:26

0 answers