在我的Service
中,我使用以下代码打开正常运行通知:
private final static NOTIFICATION_ID = 412434;
private void startNotification() {
NotificationCompat.Builder builder = new NotificationCompat.Builder(
this);
builder.setSmallIcon(R.drawable.notification);
builder.setContentTitle("Running");
final Intent intent = new Intent(this, MainActivity.class);
intent.setAction(Intent.ACTION_VIEW);
intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP | Intent.FLAG_ACTIVITY_SINGLE_TOP);
final PendingIntent contentIntent = PendingIntent.getActivity(this, 0,
intent, PendingIntent.FLAG_UPDATE_CURRENT);
builder.setContentIntent(contentIntent);
builder.setOngoing(true);
builder.setAutoCancel(false);
notification = builder.build();
startForeground(NOTIFICATION_ID, notification);
}
PendingIntent
是在点按通知时打开MainActivity
。这适用于我的所有测试设备,使用Android 2.3.3,2.3.5和Android 4.1。
它不起作用,但是在我的Nexus 7(Android 4.3)上,这根本不起作用。点击通知时没有任何反应。
我错过了哪些内容会发生变化?
答案 0 :(得分:79)
某些4.3设备上似乎存在问题。可以通过为requestCode
参数提供非0值来解决此问题。
示例:
PendingIntent.getActivity(this, 1, intent, PendingIntent.FLAG_UPDATE_CURRENT);
答案 1 :(得分:2)
这对我有用:
Random randomGenerator = new Random();
int randomInt = randomGenerator.nextInt(100);
contentIntent = PendingIntent.getActivity(this, randomInt, intent, PendingIntent.FLAG_UPDATE_CURRENT);