5

La mia notifica è un servizio (service.java) e ciò che il servizio fa è avviare una notifica del livello della batteria quando un checkboxpreference nella schermata delle preferenze è spuntata .. Cosa non funziona ora è l'intento per accedere allo MainActivity facendo clic sulla notifica. Questo è il codiceL'intento nella notifica non funziona

if(mprefs.getBoolean("notification_a", false)==true){ 
    notificationBuilder = new NotificationCompat.Builder(context); 

    notificationBuilder.setOngoing(true); 
    notificationBuilder.setContentTitle("Battery Stats Informations"); 
    notificationBuilder.setContentText("Carica residua: " +level+"%" + " " + "Temperatura: " +temperature+ "°C"); 
    //notificationBuilder.setTicker("Informazioni batteria"); 
    notificationBuilder.setWhen(System.currentTimeMillis()); 
    notificationBuilder.setSmallIcon(R.drawable.icon_small_not); 
    Intent notificationIntent = new Intent(context, MainActivity.class); 
    PendingIntent contentIntent = PendingIntent.getBroadcast(context, 0, notificationIntent, 0); 
    notificationBuilder.setContentIntent(contentIntent); 

    notificationIntent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP | Intent.FLAG_ACTIVITY_SINGLE_TOP); 

    Notification not=notificationBuilder.build(); 

    mNotificationManager.notify(SIMPLE_NOTIFICATION_ID,not); 
} else { 
    mNotificationManager.cancelAll(); 
} 

L'intento Intent notificationIntent = new Intent(context, MainActivity.class non funziona. Qualsiasi aiuto?

risposta

5

Se avete intenzione di avviare l'attività quando si fa clic su Notifica: Usa:

PendingIntent contentIntent = PendingIntent.getActivity(context, 0, notificationIntent, 0); 

recuperare un PendingIntent che iniziare una nuova attività, come chiamare Context.startActivity (Intent).

al posto di:

PendingIntent contentIntent = PendingIntent.getBroadcast(context, 0, notificationIntent, 0); 

recuperare un PendingIntent che eseguirà una trasmissione, come chiamare Context.sendBroadcast().

+0

Bene, allora ci provo .. ma qual è la differenza tra 'getActivity' e' getBroadcast'? –

Problemi correlati