問題:Android順序打開多個Activity,如何返回到第一個Activity(一般為首頁)?
情形:如 A 打開 B, B 打開 C, C 打開 D, 然后如果從 D 一步返回到 A,並清楚掉 B、C、D呢?
一個很笨的方法是,這個需要設置activity的:androidMainfest.xml android:launchModel = "singleTask"
- Intent intent= new Intent(this, 首頁Activity.class);
- startActivity(intent);
Android開發過程中肯定會經常遇到要返回首頁的情形,google當然想到了這一點,實現起來很簡單,只要在打開的最后一個Activity中 設置Flag就可以回到第一個Activity,代碼如下:
- Intent intent= new Intent(this, FirstActivity.class);
- intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
- startActivity(intent);
如果intent對象包含FLAG_ACTIVITY_CLEAR_TOP 標記,當目標task中已存在與接收該intent對象的 activity類型相同的activity實例存在時,所有位於該activity對象上面的activity將被清空,這樣接收該intent的 activity就位於棧頂,可以響應到來的intent對象。如果目標activity的運行模式為standard(默認),則目標activtiy也會被清空。因為當運行模式為standard時,總會創建新的activity對象來接收到來的intent對象。