android 多个启动页,Android启动页的问题整理
在一個
方法一:設置起動模式
一個Activity有四種啟動模式:standard, singleTop, singleTask,
singleInstance。
standard: 標準模式,一調用startActivity()方法就會產生一個新的實例。
singleTop:
如果已經有一個實例位于Activity棧的頂部時,就不產生新的實例,而只是調用Activity中的newInstance()方法。如果不位于棧頂,會產生一個新的實例。
singleTask: 會在一個新的task中產生這個實例,以后每次調用都會使用這個,不會去產生新的實例了。
singleInstance:
這個跟singleTask基本上是一樣,只有一個區別:在這個模式下的Activity實例所處的task中,只能有這個activity實例,不能有其他的實例。
這些啟動模式可以在功能清單文件中進行設置,中的launchMode屬性。
方法二:在intent中加標志
Intent.FLAG_ACTIVITY_REORDER_TO_FRONT這個標志表示:如果這個activity已經啟動了,就不產生新的activity,而只是把這個activity實例加到棧頂來就可以了。
代碼如下:
Java代碼
Intent intent = new Intent(ReorderFour.this,
ReorderTwo.class);
intent.addFlags(Intent.FLAG_ACTIVITY_REORDER_TO_FRONT);
startActivity(intent);
=======================我是華麗的分割線=======================
問題:
操作步驟如下:
1、將啟動頁的
2、按home鍵,將
3、再點擊啟動頁對應的程序圖標。
4、程序會顯示啟動頁,而沒有顯示它打開的activity。
安裝
但是,從程序從前臺切到后臺,再切回前臺后,為什么它沒有顯示activity堆棧最頂端的activity呢,而是顯示了root頁面,也就是啟動頁呢?
有沒有辦法可以讓launchMode設置成singleTask后,仍然像設置成standard一樣,在從后臺切換回程序時,顯示啟動頁打開的activity(棧頂的activity)啊?
回復1:
“singleTask” activity allows other activities to be part of its
task. It’s always at the root of its task, but other activities
(necessarily “standard” and “singleTop” activities) can be launched
into that task.
這是文檔中的說明,那么既然是只有一個啟動頁,你從程序從前臺切到后臺,再切回前臺后,相當于還是要啟動程序吧?
既然你要啟動程序是不是要啟動這個唯一的啟動頁呢?
所以就到了樓主所說的結果。
第二,其實感覺也挺簡單的,直接將android:launchMode=”singleInstance”這樣就應該可以了。
測試過,能達到樓主要求。
回復2:
1、“那么既然是只有一個啟動頁,你從程序從前臺切到后臺,再切回前臺后,相當于還是要啟動程序吧”。那為什么設置為“standard”的時候,能夠顯示棧頂的activity呢?
設置為standard的時候,允許有多個啟動項, 也就是說, 可以從任意一個activity中啟動,具體的請看文檔。
2、設置成android:launchMode=”singleInstance”后,這樣操作:由啟動頁打開一個activity,然后按回退鍵。被打開的activity不見了,但是啟動頁也不見了,直接顯示手機的主界面,應該顯示啟動頁才合理啊。
on the other hand, permits no other activities to be part of its
task. It’s the only activity in the task. If it starts another
activity, that activity is assigned to a different task — as if
FLAG_ACTIVITY_NEW_TASK was in the intent.
文檔中是這樣說的,你設置成了singleInstance,. It’s the only activity in the
task。
也說了解決的辦法,就是你開啟acitivty跳轉的時候,添加flag FLAG_ACTIVITY_NEW_TASK 即可。
總結
以上是生活随笔為你收集整理的android 多个启动页,Android启动页的问题整理的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: i3wm 获取window class
- 下一篇: Unity 创建fnt字体