ПредишенСледващото

Когато най-малко един от компонентите на приложение (или цялата прилагане) ще бъде в търсенето, система Android изпълнява процес, който се състои от един основен поток за изпълнение. По подразбиране всички компоненти на приложенията в този процес и поток.

Въпреки това, можете да се предприемат стъпки за компоненти да работят в други процеси и създаване на допълнителни потоци за всеки процес.

Всички компоненти са инициализирани в главния поток процес. Отделни потоци за всеки отделен случай обикновено не е създаден. Следователно, всички методи за обратно повикване, определени в компонента, както и причинени системата винаги работи основно технологичния поток. Това означава, че компонентът не трябва да изпълни в методите на отнемащи време операции за обратно повикване (например, изтегляне на файлове от мрежата или изчисляване на цикъла) или блокиране на системата разговор, т.е.. К. Това блокира всякакви други компоненти в процеса. За такива операции генерират отделни потоци.

Жизненият цикъл на процесите

Android може да реши да завършим процеса в случай на липса на памет, или ако паметта е в търсенето от други по-важни процеси. компоненти, работещи под тези процеси ще бъдат унищожени. Процесът ще бъде рестартиран за компоненти в случай на обратно повикване.

При избора на процес, за да унищожи Android оценява относителното значение на този процес от гледна точка на потребителя, на, т.е.. Д. видими за компонент на потребителя на процеса, като например дейности на преден план, се счита за по-важен компонент от услугите, работещи в друг процес. Също така, системата е на първо място, за да завършите процеса ДЕЙ telnostyami на които вече не вижда на екрана, а не като процес с видими дейности. Следователно, решението за приключване на процеса зависи от състоянието на компонентите, течаща в процеса.

Приоритет и състоянието на процесите

Редът, в който процесите се унищожават, за да се освободят средства, определени с приоритет. Android система се опитва да подкрепи прилагането възможно най-дълго, но в крайна сметка ще бъде принуден да се отстранят старите процеси при изчерпване на паметта. За да определите кой процес да спаси или да се унищожи, Android създава йерархия на значимост на процесите на базата на компонентите, които се изпълняват в процесите и състоянието на тези компоненти.

Процеси с най-ниска значението унищожени на първо място. Има пет нива в йерархията на важност. Списъкът по-долу ги представя по реда на важност.

  • Active процес (процес на преден план) - тази, която се изисква, за да се гарантира, че потребителят се прави в момента. Процесът се счита за активен, ако едно от следните условия:
  • процес на извършване на дейностите с които потребителят взаимодейства;
  • процес изпълнява услуга, която е свързана с активността, с които потребителят взаимодейства;

Процеси и конци, фенклуб членове андроид

  • процес има обект за обслужване и изпълнява една от методи за обратно повикване, определени в този обект;
  • процес има BroadcastReceiver обект и тя се извършва метод за получаване на обаждане намерение.

само няколко приоритетни процеси могат да съществуват едновременно. Те ще бъдат унищожени само в краен случай - ако паметта е толкова ниско, че всички те не са в състояние да продължат да работят.

  • Видим процес (Видим Process) - един, който все още няма приоритетни компоненти. А част от този процес все още може да се нарече от потребителя. Процесът се смята, че да се вижда, ако някое от следните условия:
  • дейност е процес, който не е на фокус, но все още е видим за потребителя. Това може да се случи, например, когато се обадите на диалога, който не заема целия екран, и загубени работни фокус, но видими за потребителя, а е зад диалога;
  • Това е услуга, която понастоящем е свързан с, разположен в активността на преден план (или частично затворен други дейности).
  • Видимата процес се счита за важно и няма да бъде разрушен, са все още обработва с по-нисък приоритет.

Ако един и същ процес, извършена от няколко компонента, Android определя приоритетен аспект на процеса с най-висок приоритет. Например, ако услугата се изпълнява и видима дейност, процесът ще бъде класирана като видими, не процес на услугата в този процес.

Ако по някаква процес други процеси зависят от нейното място в класацията също може да се увеличи. Процесът, който служи друг процес не може да бъде по-нисък приоритет от процеса, който го обслужва. Например, ако в процеса на kontentprovayder A обслужва клиенти в процеса, или ако услугата е в процес А е свързано с компонент в процеса на B, след това процес А ще получи приоритет е не по-ниска от приоритета на процеса Б.

Тъй като процесът на обслужване е с ранг по-висока от фоновата активност, за извършване на фонови процеси, които изискват по-дълго време, за да завърши (например мрежови данни), но за да бъде гарантирано, за да бъде завършен, често се задейства отделна услуга, вместо просто да се генерира поток в дейностите. Това е важно, в случай, че операцията по прехвърляне на данни на мрежата ще продължи по-дълго от прозореца на дейност ", от която стартира операцията, ще остане във видимия процес (ще се вижда на мобилното си устройство). Поради тази причина, излъчвани намерения приемници трябва да използват услугата, а не само да се поставят времеемки операции в нишка.

Свързани статии

Подкрепете проекта - споделете линка, благодаря!