我正在尝试在我的Android应用中设置一个通知,只会说“它有效”,但我需要我的应用程序一直兼容API 1.我真的很困惑如何做到这一点虽然。有一些旧的教程已被弃用,并且有一些新的教程不支持旧的API级别。根据这个SO问题,我应该使用NotificationCompat.Builder。我正在使用一个例子,但我不完全理解代码。
在此代码之外:
Intent notificationIntent = new Intent(ctx, YourClass.class);
PendingIntent contentIntent = PendingIntent.getActivity(ctx,
YOUR_PI_REQ_CODE, notificationIntent,
PendingIntent.FLAG_CANCEL_CURRENT);
NotificationManager nm = (NotificationManager) ctx
.getSystemService(Context.NOTIFICATION_SERVICE);
Resources res = ctx.getResources();
Notification.Builder builder = new Notification.Builder(ctx);
builder.setContentIntent(contentIntent)
.setSmallIcon(R.drawable.some_img)
.setLargeIcon(BitmapFactory.decodeResource(res, R.drawable.some_big_img))
.setTicker(res.getString(R.string.your_ticker))
.setWhen(System.currentTimeMillis())
.setAutoCancel(true)
.setContentTitle(res.getString(R.string.your_notif_title))
.setContentText(res.getString(R.string.your_notif_text));
Notification n = builder.build();
nm.notify(YOUR_NOTIF_ID, n);
我的下面有红线:ctx
,YOUR_PI_REQ_CODE
和YOUR_NOTIF_ID
答案 0 :(得分:2)
ctx
是上下文。它可以通过您的活动。
YOUR_PI_REQ_CODE
是PendintIntent Request Code。它可以是任何int常量。
YOUR_NOTIF_ID
是通知ID。它也可以是任何int常量。
答案 1 :(得分:2)
ctx
变量旨在成为Android上下文 - 通常是一个Activity(或实际上是一个扩展Activity的类)。
您应该对PendingIntent
课程进行一些研究,以了解YOUR_PI_REQ_CODE
,但您需要确定要放在哪里;它是您的待处理的意向请求代码。
您还应该研究NotificationManager
notify()
方法,以确定您要将 通知ID用作什么。