4

我正在尝试在我的 android 应用程序中设置一个通知,它只会说“它有效”,但我需要我的应用程序一直兼容到 API 1。不过,我真的很困惑如何做到这一点。有些旧教程已弃用,有些新教程不支持旧 API 级别。根据这个SO question,我应该使用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

4

2 回答 2

2

ctx是上下文。它可以改为通过您的活动。

YOUR_PI_REQ_CODE是 PendintIntent 请求代码。它可以是任何 int 常量。

YOUR_NOTIF_ID是通知 ID。它也可以是任何 int 常量。

于 2012-10-11T23:31:48.867 回答
2

ctx变量旨在成为一个 Android 上下文——通常是一个 Activity(或者实际上是一个扩展 Activity 的类)。

您应该对课程进行一些研究PendingIntent以理解YOUR_PI_REQ_CODE,但您需要确定放在这里的内容;这是待处理的意图请求代码。

您还应该研究NotificationManager notify()确定要用作通知 ID的方法。

于 2012-10-11T23:32:01.283 回答