Опоздание пароля

Это код, который я использую

http://pastebin.com/3bMCKURu

Проблема в том, что через некоторое время (файл получает больше веса) панель уведомлений становится медленнее для раскрывающегося списка, и, наконец, она просто зависает!

У меня возникла аналогичная проблема, похоже, что RemoteViews имеет утечку памяти и не должен многократно использоваться.

Посмотрите на эти темы:

Утечка памяти Android в службе уведомлений

http://code.google.com/p/android/issues/detail?id=13941

http://groups.google.com/group/android-developers/browse_thread/thread/667343a171e51463#

Удачи

Ваши уведомления слишком часты. Вот почему он замерзает. Сделайте их обновление с большими интервалами. Ок – раз в секунду или 2 секунды.

Это обычное поведение. Не следует наводнять NotificationManager частыми обновлениями. Вы должны выбрать интервал для обновления, например, дважды в секунду.

Например,

long startTime; long elapsedTime = 0L; if (elapsedTime > 500) { new Handler(Looper.getMainLooper()).post(new Runnable() { @Override public void run() { mBuilder.setProgress(100, (int) newValue, false); mNotifyManager.notify(notificationID, mBuilder.build()); startTime = System.currentTimeMillis(); elapsedTime = 0; } }); Log.d("Andrognito", newValue + "Progress"); } else elapsedTime = new Date().getTime() - startTime; 

Это отлично работает для меня и не замораживает уведомления. Надеюсь это поможет!

Это решение работало для меня (уродливое, но работающее):

 private static int mPercentDownloaded; @Override protected Void doInBackground(String... params) { ... mPercentDownloaded = (int) ((total * 100) / lenghtOfFile); long currentDownloadTicks = System.currentTimeMillis(); if (currentDownloadTicks > mDownloadTicks + 1000) { publishProgress(mPercentDownloaded); mDownloadTicks = currentDownloadTicks; } ... }