我的通知是一项服务(service.java),当检查首选项屏幕中的复选框偏好时,服务所做的是启动电池电量通知。现在不起作用的意图是输入{{1单击通知。这是代码
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();
}
不起作用。有帮助吗?
答案 0 :(得分:5)
如果您打算在单击通知时启动活动: 使用:
PendingIntent contentIntent = PendingIntent.getActivity(context, 0, notificationIntent, 0);
检索将启动新活动的PendingIntent,例如调用 Context.startActivity(意向)。
取代:
PendingIntent contentIntent = PendingIntent.getBroadcast(context, 0, notificationIntent, 0);
检索将执行广播的PendingIntent,例如调用 Context.sendBroadcast()。