【发布时间】:2011-03-24 08:20:36
【问题描述】:
我有一项服务,它创建一个通知,然后定期用某些信息更新它。大约 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);
}
提前致谢。
【问题讨论】:
-
请在重启前发布一些Logcat
-
这只是 GC 越来越大,直到它引起问题并开始杀死东西并重新启动
-
确保它确实是您的应用程序。尝试完全卸载它,看看它是否仍然发生。可能是您最近安装的其他应用。
-
适用于我的应用,也出现在模拟器中。
-
你确定是这个服务吗?就像你注释掉服务所做的一切一样,它仍然有同样的问题吗?
标签: android memory-leaks notifications notificationmanager