2012-01-06 190 views
12

誰能幫助我瞭解同步和Android的異步活動?同步和異步活動

究竟是什麼的同步和異步活動的Android是什麼意思?

StartActivityStartSubActivityStartAcivityForResult是以同步方式還是異步方式啓動一個活動,還是它們可以以兩種方式工作?

請解釋一下,因爲我已經通過很多文章了,但找不到在這個任何適當的交代。

+0

@ Dinesh..Your的問題是一樣的[鏈接] HTTP://計算器.com/questions/8613295/difference-between-synchronous-activities-ans-asynchronous-activities [link],同時你也回覆了這篇文章。那麼爲什麼你問同樣的問題。另外AFAIK startSubActivity從來沒有公開發布,它的功能是由startActivityForResult()提供的 – Maverick 2012-01-06 18:40:36

+0

感謝Ravi的評論。我回答了這個問題,但我仍然對這個概念感到困惑。所以想要100%清楚。如果你有一些想法比你可以與我分享...... :) – 2012-01-06 18:58:04

+1

「任何人都可以幫助我解釋Android中的同步和異步活動。」 - Android中沒有這樣的概念。 – CommonsWare 2012-01-06 19:22:38

回答

17

首先,只有一個活動可以在Android設備上的時間運行,所以你永遠不會在同一時間運行兩個活動。當你想「開火併忘記」時,使用startActivity(),也就是說,你想啓動一個活動,但不期望它爲你的活動返回一個值。在這種情況下,新的活動將開始,您的活動將暫停;一旦用戶返回到您的活動,您最終可能會重新獲得控制權。

使用startActivityForResult()當你expecing從正在開展活動的結果。在這種情況下,呼叫活動應覆蓋onActivityResult(),當啓動的活動退出並返回給您(其設置爲setResult())時將調用該活動。

在這兩種情況下,因爲調用活動和所謂的活動是在同一個任務,它在一定意義上的「同步」(雖然我認爲使用術語「同步」和「異步」可以在混亂這個上下文)。被叫活動結束前,調用活動不會出現在屏幕上。

一個有用的念想知道更多的是: * http://developer.android.com/guide/topics/fundamentals/tasks-and-back-stack.html

- 布魯諾·奧利維拉(Android開發者關係,谷歌)

+1

感謝Bruno的快速回復。但是,正如我在許多地方所看到的,在這個類型的問題出現時,「解釋同步」和「異步」這個術語在某種程度上可以解釋我。 – 2012-01-06 19:05:54

+3

同步意味着直到某個任務完成後執行纔會繼續。如果'startActivity'以這種方式工作,則所有接口都將凍結,直到其他活動正在運行。異步意味着你的任務將在未來的某個地方發生,同時繼續執行:你要求啓動一個活動,並且你的代碼繼續執行,並知道它最終會發生。 – slezica 2012-01-07 14:57:23

+1

答案並未妥善解決問題。 – 2014-09-28 12:40:03