編輯:Android開發實例
1. Activities and Tasks
1.2 Affinities and new tasks
默認情況下,在一個程序中的所有activity都在一個affinity中,這個也使這些activity屬於同一個task。但是我們可以在<activity>標簽中設置taskAffinity屬性來為每一個activity指定一個單獨的affinity。不同的應用程序的activity可以被指定為相同的affinity,在同一個應用程序的多個activity也可以被指定為在不同的affinity中。在兩種情況下,affinity會起作用:
1) 啟動activity的Intent對象中包含FLAG_ACTIVITY_NEW_TASK標志。
2) 一個activity將allowTaskReparenting屬性 設置為true。
FLAG_ACTIVITY_NEW_TASK 標志:
默認情況下,通過startActivity()方法激活的activity會加入到和調用者相同的task中,也會放到和存放調用者相同的stack中。但如果傳遞給 startActivity()方法的的Intent對象包含了FLAG_ACTIVITY_NEW_TASK標志,系統就會把這個新激活的activity放到一個不同的task中去。正如這個標志的字面意義那樣,它是一個新的task。然而,這種情況不是絕對的。如果已經存在了一個和新激活的activity擁有相同的 affinitiy,那麼這個activity就會直接放入這個新的task中。
allowTaskReparenting 屬性:
若一個activity的allowTaskReparenting屬性被設置為true,那麼這個activity就可以從它啟動時初始的task移動到新的展示的task中(it can move from the task it starts in to the task it has an affinity for when that task comes to the fore)。比如,在一個關於旅游的應用程序中一個activity是報告選擇的城市的天氣情況的,它的affinity和這個應用程序中的其它activity都是相同的(默認情況),但是它的allowTaskReparenting屬性被設置為true。這時,此應用另外一個activity啟動了這個報告天氣情況的activity,那麼這個報告天氣情況的activity就被加入到那個調用activity相同的task中。然而,當這個關於旅游的應用程序離開前台,這個報告天氣情況的activity會被重新分配到新的當前顯示的task中。(However, when the travel application next comes forward, the weather reporter will be reassigned to and displayed with that task)
如果一個.apk文件包含了從用戶角度來說多個應用程序的話,你可能希望給acitvity分配不同的affinity。
可以顯示在的Android任務,通過加載進度條的進展。進度條有兩種形狀。加載欄和加載微調(spinner)。在本章中,我們將討論微調(spinner)。Spinner 用
前面一篇文章實現了使用ViewPager實現高仿launcher拖動效果 ,後來很多朋友問能不能實現左右循環滑動效果和引導頁面。今天實現了左右滑動,至於在最後一頁
本文為大家演示了如何使用Chronometer控件實現Android計時器的實
登錄應用程序的屏幕,詢問憑據登錄到一些特定的應用。可能需要登錄到Facebook,微博等本章介紹了,如何創建一個登錄界面,以及如何管理安全問題和錯誤嘗試。首先,必須定義兩