通知意图不起作用

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 时没有起作用。请问有什么解决方法吗?

1个回答

5
如果您想在单击通知时启动活动,请使用以下代码:

Use:

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

获取一个 PendingIntent 以启动一个新的活动,类似于调用 Context.startActivity(Intent)。

替代:

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

获取一个将执行广播的PendingIntent,类似于调用Context.sendBroadcast()。

那好,我来试试...但是getActivitygetBroadcast有什么区别呢? - David_D

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接