Activity, Service,Task, Process and Thread之間的關係

來源:互聯網
上載者:User

Activity, Service,Task, Process and Thread之間到底是什麼關係呢?

首先我們來看下Task的定義,Google是這樣定義Task的:a task is what the user experiences as an "application." It's a group of related activities, arranged in a stack. A task is a stack of activities, not a class or an element in the manifest file.
這意思就是說Task實際上是一個Activity棧,通常使用者感受的一個Application就是一個Task。從這個定義來看,Task跟 Service或者其他Components是沒有任何聯絡的,它只是針對Activity而言的。

而Service和Activity只是Android提供的Components中的兩種,除此之外還有Content Provider和Broadcast Receiver。

通常情況下,對於一個應用程式的所有的Components都會在同一個Process產生的Main Thread中運行。但是我們也可以讓不同的Component運行在不同的Process當中,我們可以通過設定這些Components的屬性來使其運行在不同的Process當中,例如:<activity android: process = "processA">。當然我們也可以設定使他們運行在同一個Process當中,即使他們不在同一個應用程式當中也可以(前提是這些應用程式使用的是同一個Linux
User ID,並且被同一個機構簽名)。

那麼Thread跟這些Components又有什麼關係呢?

通常我們會將一些長時間或大計算量的操作用一個單獨的線程來運行,以防止類似操作阻塞Process。比如我們可以為一個Service(如播放音樂的Service)產生一個Thread,我們也可以為Methods來產生一個線程。總之當你不想讓某些操作阻塞Main Thread的時候,create a thread!

Activity, Service,Task, Process and Thread之間到底是什麼關係呢?

首先我們來看下Task的定義,Google是這樣定義Task的:a task is what the user experiences as an "application." It's a group of related activities, arranged in a stack. A task is a stack of activities, not a class or an element in the manifest file.
這意思就是說Task實際上是一個Activity棧,通常使用者感受的一個Application就是一個Task。從這個定義來看,Task跟 Service或者其他Components是沒有任何聯絡的,它只是針對Activity而言的。

而Service和Activity只是Android提供的Components中的兩種,除此之外還有Content Provider和Broadcast Receiver。

通常情況下,對於一個應用程式的所有的Components都會在同一個Process產生的Main Thread中運行。但是我們也可以讓不同的Component運行在不同的Process當中,我們可以通過設定這些Components的屬性來使其運行在不同的Process當中,例如:<activity android: process = "processA">。當然我們也可以設定使他們運行在同一個Process當中,即使他們不在同一個應用程式當中也可以(前提是這些應用程式使用的是同一個Linux
User ID,並且被同一個機構簽名)。

那麼Thread跟這些Components又有什麼關係呢?

通常我們會將一些長時間或大計算量的操作用一個單獨的線程來運行,以防止類似操作阻塞Process。比如我們可以為一個Service(如播放音樂的Service)產生一個Thread,我們也可以為Methods來產生一個線程。總之當你不想讓某些操作阻塞Main Thread的時候,create a thread!

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.