gpt4 book ai didi

通知服务中的android内存泄漏

转载 作者:可可西里 更新时间:2023-11-01 19:06:21 25 4
gpt4 key购买 nike

我有一项服务可以创建通知,然后定期用某些信息更新它。大约 12 分钟后,手机崩溃并重新启动,我认为这是由以下代码中的内存泄漏引起的,这与我更新通知的方式有关,如果是这种情况,有人可以检查/建议我吗?我做错了。

创建时:

mNotificationManager = (NotificationManager) getSystemService(NOTIFICATION_SERVICE);

创建通知:

private void createNotification() {
Intent contentIntent = new Intent(this,MainScreen.class);
contentIntent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP | Intent.FLAG_ACTIVITY_SINGLE_TOP);
PendingIntent appIntent =PendingIntent.getActivity(this,0, contentIntent, 0);

contentView = new RemoteViews(getPackageName(), R.layout.notification);
contentView.setImageViewResource(R.id.image, R.drawable.icon);
contentView.setTextViewText(R.id.text, "");

notification = new Notification();
notification.when=System.currentTimeMillis();
notification.contentView = contentView;
notification.contentIntent = appIntent;
}

更新通知:

private void updateNotification(String text){
contentView.setTextViewText(R.id.text, text);
mNotificationManager.notify(0, notification);
}

提前致谢。

最佳答案

我遇到了同样的问题。看起来如果您不在服务中“缓存”RemoteView 和 Notification,而是在“更新”例程中从头开始重新创建它们,则此问题就会消失。是的,我知道它效率不高,但至少手机不会因内存不足错误而重启。

关于通知服务中的android内存泄漏,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3390280/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com