2

有谁知道如何在谷歌提供的代码中使用“mId”变量?

http://developer.android.com/guide/topics/ui/notifiers/notifications.html

文档中没有解释。但出现在代码的最后一行。使用此代码时,它是未定义的,因此我必须将其定义为“private int mId;”

完全失去了这个。我得到这个的代码如下所示。

mNotificationManager.notify(mId, mBuilder.build());

 ButtonOne.setOnClickListener(new View.OnClickListener() {

  private int mId;

// anonymous inner class override for on click
public void onClick(View v) {

    Intent myIntent = new Intent(MainActivity.this, CoverFlowExample.class);
     MainActivity.this.startActivity(myIntent);



     NotificationCompat.Builder mBuilder =
                new NotificationCompat.Builder(MainActivity.this)
                .setSmallIcon(R.drawable.ic_launcher)
                .setContentTitle("My notification")
                .setContentText("Hello World!");
        // Creates an explicit intent for an Activity in your app
        Intent resultIntent = new Intent(MainActivity.this, MainActivity.class);

        // The stack builder object will contain an artificial back stack for the
        // started Activity.
        // This ensures that navigating backward from the Activity leads out of
        // your application to the Home screen.
        TaskStackBuilder stackBuilder = TaskStackBuilder.create(MainActivity.this);
        // Adds the back stack for the Intent (but not the Intent itself)
        stackBuilder.addParentStack(MainActivity.class);
        // Adds the Intent that starts the Activity to the top of the stack
        stackBuilder.addNextIntent(resultIntent);
        PendingIntent resultPendingIntent =
                stackBuilder.getPendingIntent(
                    0,
                    PendingIntent.FLAG_UPDATE_CURRENT
                );
        mBuilder.setContentIntent(resultPendingIntent);
        NotificationManager mNotificationManager =
            (NotificationManager) getSystemService(Context.NOTIFICATION_SERVICE);
        // mId allows you to update the notification later on.
        mNotificationManager.notify(mId, mBuilder.build());


}

});

4

2 回答 2

4

它是用于识别通知以供以后操作的唯一 ID。默认情况下,它具有 value 0

如果您不想稍后检索它进行更改,那么您甚至不需要做private int mId,只需在通知时设置任何值,例如:

mNotificationManager.notify(123, mBuilder.build());
于 2012-10-18T07:10:47.670 回答
0

它是您将要显示的通知的唯一 ID,因此您可以稍后删除或更新通知。

id 在应用程序的上下文中是唯一的,因此如果您制作两个应用程序并使用相同的 id,android 仍然知道区别。

请参阅:http: //developer.android.com/reference/android/app/NotificationManager.html#notify(int, android.app.Notification)

从开发者网站:

id:此通知在您的应用程序中唯一的标识符。

罗尔夫

于 2012-10-18T07:08:17.013 回答