Android NotificationManager内存泄漏

Android NotificationManager内存泄漏,android,memory-leaks,Android,Memory Leaks,我从活动onCreate执行此代码。它会创建一条通知消息。我的问题是: 当活动被销毁时,我是否需要注销通知?我的意思是,我们在那里传递一个上下文,据我所知,当一个活动被破坏时,通知会保留下来,这可能会导致内存泄漏。在NotificatuonManagerCompat类中,上下文保持为变量 NotificationManagerCompat notificationManager = NotificationManagerCompat.from(this); NotificationCompat.

我从活动onCreate执行此代码。它会创建一条通知消息。我的问题是:

当活动被销毁时,我是否需要注销通知?我的意思是,我们在那里传递一个上下文,据我所知,当一个活动被破坏时,通知会保留下来,这可能会导致内存泄漏。在NotificatuonManagerCompat类中,上下文保持为变量

NotificationManagerCompat notificationManager = NotificationManagerCompat.from(this);
NotificationCompat.Builder mBuilder = new NotificationCompat.Builder(this, CHANNEL_ID);
mBuilder.setContentTitle("Picture Download")
    .setContentText("Download in progress")
    .setSmallIcon(R.drawable.ic_notification)
    .setPriority(NotificationCompat.PRIORITY_LOW);


int PROGRESS_MAX = 100;
int PROGRESS_CURRENT = 0;
mBuilder.setProgress(PROGRESS_MAX, PROGRESS_CURRENT, false);
notificationManager.notify(notificationId, mBuilder.build())

无需担心,
NotificationManagerCompat
使用
context.getApplicationContext()
。另外,当通知通知它不依赖于您的
活动时,
@Omkar NotificationManagerCompat类保留对我们传递的上下文的引用是的,但它保留应用程序上下文,而不是活动。@Omkar来自源代码:private NotificationManagerCompat(上下文上下文){mContext=context;mNotificationManager=(NotificationManager)mContext.getSystemService(context.NOTIFICATION_SERVICE)}它保留来自原始contextOk的引用,然后尝试将
getApplicationContext()
传递到
NotificationManager compact