2016-11-07 53 views
0

嗨,我一類的AsyncTask和onProgressUpdate我希望在一個狀態欄創建通知,我已經這樣做:Android的通知不啓動

@Override 
protected void onProgressUpdate(Object[] values) { 

    this.holder.itemView.setBackgroundColor(Color.WHITE); 
    if(messaggio){ 

     PendingIntent pi = PendingIntent.getActivity(context, 0, new Intent(context, EUDroid_Main_Activity.class), 0); 
     Notification notification = new NotificationCompat.Builder(context) 
       .setTicker("Ticker") 
       .setContentTitle("Title") 
       .setContentText("Hello") 
       .setContentIntent(pi) 
       .setAutoCancel(true) 
       .build(); 

     NotificationManager notificationManager = (NotificationManager) context.getSystemService(NOTIFICATION_SERVICE); 
     notificationManager.notify(0, notification); 


    } 
    super.onProgressUpdate(values); 

} 

但通知沒有明星,爲什麼? 我如何創建通知?

編輯我有這樣做的:

@Override 
protected void onProgressUpdate(Object[] values) { 

    this.holder.itemView.setBackgroundColor(Color.WHITE); 
    if(messaggio){ 

     try { 
      Thread.sleep(Integer.parseInt(ritardoMessaggio)*1000); 
     } catch (InterruptedException e){ 
      e.printStackTrace(); 
     } 

     NotificationCompat.Builder notification; 
     PendingIntent pIntent; 
     NotificationManager manager; 
     Intent resultIntent; 
     TaskStackBuilder stackBuilder; 

     notification = new NotificationCompat.Builder(context); 

     notification.setContentTitle(nameFile); 

     notification.setContentText(testoMessaggio); 

     notification.setTicker("Evento EUDroid"); 

     notification.setSmallIcon(R.drawable.splash); 

     notification.setVibrate(new long[] { 1000, 1000, 1000, 1000, 1000 }); 
     notification.setLights(Color.BLUE, 500, 500); 
     Uri alarmSound = RingtoneManager.getDefaultUri(RingtoneManager.TYPE_NOTIFICATION); 
     notification.setSound(alarmSound); 

     //Creating new Stack Builder 
     stackBuilder = TaskStackBuilder.create(context); 
     stackBuilder.addParentStack(EUDroid_Main_Activity.class); 
     //Intent which is opened when notification is clicked 
     resultIntent = new Intent(context, EUDroid_Main_Activity.class); 
     stackBuilder.addNextIntent(resultIntent); 
     pIntent = stackBuilder.getPendingIntent(0,PendingIntent.FLAG_UPDATE_CURRENT); 
     notification.setContentIntent(pIntent); 
     manager =(NotificationManager) context.getSystemService(Context.NOTIFICATION_SERVICE); 
     manager.notify(0, notification.build()); 


    } 
    super.onProgressUpdate(values); 

} 

現在我有這樣的問題: 當我reiceive通知它產生兩種蜂鳴聲,爲什麼?我如何收到兩個通知

+0

你打電話給publishProgress()嗎?你調試了你的代碼嗎 - 它是否調用notificationManager.notify? –

+0

@ Fra87是否調用了publishProgress(values);在doInBackground? – Raghavendra

+0

還要確保在設備設置中啓用了通知。 –

回答

0

有一個嘗試!這段代碼肯定會起作用。

NotificationManager manager; 
Notification myNotication; 
    manager = (NotificationManager) getSystemService(NOTIFICATION_SERVICE); 

    btnShow.setOnClickListener(new View.OnClickListener() { 

     @Override 
     public void onClick(View arg0) { 


      //API level 11 
      Intent intent = new Intent("com.example.sampad.HOMEFRAGMENT"); 

      PendingIntent pendingIntent = PendingIntent.getActivity(PushNotification.this, 1, intent, 0); 

      final Notification.Builder builder = new Notification.Builder(PushNotification.this); 



      builder.setAutoCancel(false); 
      builder.setTicker("You have got a notificatio"); 
      builder.setContentTitle("Request Approval Notification"); 
      builder.setContentText("send you a request for approval"); 
      builder.setSmallIcon(R.drawable.appicon); 
      builder.setContentIntent(pendingIntent); 
      builder.setOngoing(true); 
      if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.JELLY_BEAN) { 
       builder.setSubText("This is subtext..."); //API level 16 
      } 
      builder.setNumber(100); 
      if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.JELLY_BEAN) { 
       builder.build(); 
      } 
      /* Add Big View Specific Configuration */ 


      myNotication = builder.getNotification(); 
      manager.notify(11, myNotication); 


      /* 
      //API level 8 
      Notification myNotification8 = new Notification(R.drawable.ic_launcher, "this is ticker text 8", System.currentTimeMillis()); 

      Intent intent2 = new Intent(MainActivity.this, SecActivity.class); 
      PendingIntent pendingIntent2 = PendingIntent.getActivity(getApplicationContext(), 2, intent2, 0); 
      myNotification8.setLatestEventInfo(getApplicationContext(), "API level 8", "this is api 8 msg", pendingIntent2); 
      manager.notify(11, myNotification8); 
      */ 

     } 
    });