關於android recent task的一些想法

來源:互聯網
上載者:User

Android使用recent task管理(以android的概念其實不能叫管理)任務,存在著一些不足。系統對Activity的管理過程如下:

Activity被另一個Activity安全覆蓋時便處於stop狀態,不佔CPU時間,只佔記憶體,同時運行該任務的進程也沒有被kill,當使用者切換回這個程式時不用再載入系統資源,程式載入比較快。當新Activity運行時記憶體資源不夠用時,系統是kill掉不常用的Activity,釋放記憶體資源。當系統kill一個Activity時會調用這個Activity的onSaveInstanceState(Bundle)給使用者一個儲存資料的機會,儲存必要的資料,之後當使用者再切換回這個被kill的Activity時,會調用這個Activity的onRestoreInstanceState(Bundle)恢複之前kill時儲存的資料,使使用者看起來還是之前的那個介面。

首先recent task這個概念是很好的,系統會幫你照看任務,管理記憶體,使使用者使用起來更簡易。使用者使用應用程式,而不用關心任務管理,必要時系統會kill掉一些不常用的Acitiviy,釋放資源,以便運行新的Activity。但是也正是這個帶來了一些實質上的問題,如下:

1. 原生android在4.0之前都沒有提供任務管理,只有recent task,只能起到任務切換作用。android 4.0的recent task雖然有了task manager的功能,但卻只能kill掉含有Activity的後台進程,對沒有Activity,只有Service的進程毫無作用。

2. 有的程式收到Broadcast後會啟動後台Service運行,recent task裡並沒有,無法管理這樣的進程。

3. 有的進程已經kill掉(程式內建退出按鈕,或使用工作管理員),但是recent task中還存在,現在其實是名存實亡,除了能連結到這個程式之外,其他一點作用也沒有。

可能有人會抨擊說這正是android有別於windows的地方,說是受windows任務管理毒害太深,其實不然。Android的這個新概念並不能很好的迎合使用者的意願,加上一些程式寫不好,Android沒有很好的約束這些程式。例如有時我們退出一個程式是希望背景Service也一起被關閉,而不希望後台有Service在跑,偷偷連網,費電,費流量。我感覺Android 任務管理最大的問題是不能很好的約束控制Service。

 

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.