试图在android中构建一个简单的通知

时间:2012-10-11 23:17:27

标签: java android android-notifications

我正在尝试在我的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);

我的下面有红线:ctxYOUR_PI_REQ_CODEYOUR_NOTIF_ID

2 个答案:

答案 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用作什么。