日韩无码专区无码一级三级片|91人人爱网站中日韩无码电影|厨房大战丰满熟妇|AV高清无码在线免费观看|另类AV日韩少妇熟女|中文日本大黄一级黄色片|色情在线视频免费|亚洲成人特黄a片|黄片wwwav色图欧美|欧亚乱色一区二区三区

RELATEED CONSULTING
相關咨詢
選擇下列產(chǎn)品馬上在線溝通
服務時間:8:30-17:00
你可能遇到了下面的問題
關閉右側工具欄

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營銷解決方案
在Android平臺下如何控制應用程序生命周期

我們向很多朋友介紹過Android特有的虛擬機:Dalvik虛擬機工作原理介紹。Android各個應用在運行時的進程管理和內(nèi)存管理都是相對獨立的,Android應用程序并不能控制自己的生命周期。本文將介紹如何控制應用程序生命周期。

創(chuàng)新互聯(lián)建站專注于企業(yè)全網(wǎng)營銷推廣、網(wǎng)站重做改版、武寧網(wǎng)站定制設計、自適應品牌網(wǎng)站建設、H5頁面制作、商城系統(tǒng)網(wǎng)站開發(fā)、集團公司官網(wǎng)建設、外貿(mào)網(wǎng)站制作、高端網(wǎng)站制作、響應式網(wǎng)頁設計等建站業(yè)務,價格優(yōu)惠性價比高,為武寧等各大城市提供網(wǎng)站開發(fā)制作服務。

一、前言

與大多數(shù)傳統(tǒng)的操作系統(tǒng)環(huán)境不同,Android應用程序并不能控制自己的生命周期。所以應用的各個組件(activity,Service……)就得時刻小心的監(jiān)聽應用的狀態(tài)變化對它們的影響,防止在不適當?shù)臅r機被終止掉。(可能會造成數(shù)據(jù)丟失哦)

在Android中每個應用都具有獨立的進程運行在獨立的Dalvik(Android特有的虛擬機)。各個應用在運行時的進程管理和內(nèi)存管理都是相對獨立的。Android使用一種“侵占性”的方式管理系統(tǒng)資源,這意味著為了釋放資源給高優(yōu)先級的程序(通常情況下是正在與用戶進行直接交互的程序),某些進程及其宿主程序將會在沒有任何提示警告的情況下被無情的結束。

二、理解應用的優(yōu)先級和進程狀態(tài)

結束一些進程是為了釋放回收資源,那么那些進程會被結束?是A先結束還是B先結束呢?這決定于宿主應用程序的優(yōu)先級了。一個應用的優(yōu)先級等同于具有***優(yōu)先級的組件的優(yōu)先級。如果此刻兩個程序具有相同的優(yōu)先級,那么曾經(jīng)哪個進程處于低優(yōu)先級的時間較長,就會被結束掉。進程的優(yōu)先級受到進程間附屬關系的影響,比如A應用依賴的Service或者Content Provider是由B應用提供的,那么B將會具有更高的優(yōu)先級。所有的Android應用都會遺留在內(nèi)存中運行,直到系統(tǒng)需要釋放回收資源才會被結束掉。

 

圖示:各種進程及其對應的優(yōu)先級

Activity Process 活動進程是其宿主程序更用戶直接交互的組件,Android會嘗試通過回收各種資源來保證其運行狀態(tài)。此類進程數(shù)量少,通常是***被結束掉的。

活動進程包含下面幾種:

Activity處于激活狀態(tài),也就是說處于foreground,接收響應用戶事件;

Activities, Services, or Broadcast Receivers 正在執(zhí)行處理OnReceive 事件;

Services 正在執(zhí)行處理 onStart, onCreate, or onDestroy 事件.

Visible Process 可視化,但是不處于活動狀態(tài)的Activity。它們不處于foreground也不接受響應用戶事件。這中情況發(fā)生在Activity有部分被覆蓋了(比如我們點擊A里面的一個按鈕,彈出一個Dialog,此時A就變成一個可視進程)??梢曔M程同樣很少,只有在極端的情況下,為了保證Activity Process的運行才會被結束掉。

Started Service Process 注意,是啟動后的服務進程。服務進程需要在沒有可視化界面的情況下持續(xù)運行,因為服務沒有和用戶直接交互。它們依然被認為是前臺進程,只有當Visible和Activity Process需要資源的時候才會被結束。

Background Process 一個進程附屬在不可視的Activity 也沒有任何啟動的服務進程就變成了后臺進程。通常情況下Android里面會有一大堆后臺進程,Android用 last-seen-first-killed 這種方式來結束此類進程,從而為foreground進程提供資源。

Empty Process 為了改善整個系統(tǒng)的性能,Android會在內(nèi)存中保留已經(jīng)結束生命周期的應用程序。Android保留這些緩存為了是應用能夠快速啟動。它們將會按照一貫的情況被結束掉。

綜上所述,正確的組織應用程序,確保穩(wěn)定運行,防止運行中途被終止是非常重要的。

 

【編輯推薦】

  1. Nexus One作為Android測試機型
  2. Android平臺添新玩意 PHP將實現(xiàn)應用
  3. Google發(fā)布Android 2.2版本 超20項重要改動

網(wǎng)站欄目:在Android平臺下如何控制應用程序生命周期
網(wǎng)頁URL:http://www.5511xx.com/article/copodjc.html