как очистить процесс от memroy, когда он убит - PullRequest
0 голосов
/ 19 мая 2011

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

ИЛИ

После прочтения 1М файла он будет прочитан из памяти / кэша при повторном чтении.вопрос в том, может ли он быть очищен из памяти или кеша после прочтения?

спасибо

Ответы [ 2 ]

1 голос
/ 19 мая 2011

Лучший ответ: вы не «очищаете» : вы позволяете андроиду справиться с ними. Любой процесс будет убит, если (когда) потребуется память. Что касается кешей, то сборщик мусора позаботится об этом. Опять же, нет необходимости делать что-либо на вашей стороне (кроме, может быть, убедиться, что вы не оставили где-нибудь живые ссылки на него).

Я цитирую ниже часть Пост Дайанны Хэкборн пост в блоге Android:

Когда приложение «останавливается»?

Распространенное недоразумение о Android многозадачность это разница между процессом и приложением. В Android это не сильно связанные объекты: приложения могут кажется присутствующим пользователю без фактический процесс в настоящее время работает приложение; несколько приложений могут делиться процессы, или одно приложение может сделать использование нескольких процессов в зависимости от его потребности; процесс (ы) приложение может храниться Android, даже если это приложение не активно что-то делает.

Тот факт, что вы можете увидеть процесс приложения "работает" делает не означает, что приложение работает или делать что-либо. Это может быть просто там потому что Android нужно было в некоторых точка, и решил, что это будет лучше держать его на всякий случай нужно снова Точно так же вы можете оставить заявку на немного и вернитесь туда, откуда вы ушли выключен, и в течение этого времени Android может нужно было избавиться от процесса для других вещей.

Ключ к тому, как работает Android приложения таким образом, что процессы не закрываются чисто. Когда пользователь покидает приложение, его процесс хранится в фон, позволяя продолжить работает (например, загрузка веб страницы), если необходимо, и прийти немедленно на передний план, если пользователь возвращается к этому. Если устройство никогда не заканчивается память, тогда Android сохранит все эти процессы вокруг, действительно оставляя все приложения "работают" все время.

Конечно, есть ограниченное количество памяти, и чтобы приспособиться к этому Android должен решить, когда избавиться от процессы, которые не нужны. это ведет к жизненному циклу Android, правила, которые он использует, чтобы решить, как Важным является каждый процесс и, следовательно, следующий, который должен быть отброшен. Эти правила основаны на том, насколько важно процесс предназначен для текущего пользователя опыт, а также как долго был с тех пор, как процесс был последний раз необходим пользователем.

0 голосов
/ 19 мая 2011

Если вы хотите убить процесс, это может помочь,

 int pid = android.os.Process.myPid();
     android.os.Process.killProcess(pid);
  Runtime r = Runtime.getRuntime();

    r.gc();
    System.gc();
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...