5

我的通知是一项服务(service.java),该服务的作用是在选中首选项屏幕中的复选框首选项时启动电池电量通知。现在不起作用的是输入MainActivity单击通知的意图。这是代码

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();
}

意图Intent notificationIntent = new Intent(context, MainActivity.class不起作用。有什么帮助吗?

4

1 回答 1

5

如果您打算在单击通知时启动活动:使用:

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

检索将启动新活动的 PendingIntent,例如调用 Context.startActivity(Intent)。

代替:

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

检索将执行广播的 PendingIntent,例如调用 Context.sendBroadcast()。

于 2013-08-20T09:08:38.407 回答