2011-09-17 39 views
1

我有一個簡單的問題。在我的應用程序中,我有3個活動A,B,C。活動A是主要活動。對活動A的某些操作需要活動B,然後在執行某些操作後進入活動C.當我處於活動C時,我按下主頁按鈕並且主屏幕出現。現在,當我再次點擊應用程序圖標時,它會再次啓動活動C.但我希望活動A應該到來,因爲我必須要求密碼。我希望所有的活動都應該完成,當我按下主頁按鈕,當我再次點擊應用程序圖標時,登錄活動即活動A即將到來。任何人都可以給我一些解決方案嗎?如何在android中重新排序活動?

回答

1

如果你的射擊意圖從一個活動轉到另一個這樣----->

意向意圖=新意圖(這一點,B.class); startActivity(intent);

然後添加這個東西到你的代碼,然後所有的事情都會得到精美---->

addFlags(Intent.FLAG_ACTIVITY_REORDER_TO_FRONT)這樣----->

意向意圖=新意圖(這個,B.class).addFlags(Intent.FLAG_ACTIVITY_REORDER_TO_FRONT); startActivty(intent);

注--->這裏(this)表示你的A活動。

0

你可以控制你的應用程序,同時是onPause狀態(當用戶按回家)。

protected void onPause(){ 
    super.onPause(); 

} 

在這裏你可以做所有你想要的東西。

另一種方式是截獲「主頁」按鈕,進入應用程序在後臺之前它很快回來活動A.

0

許多這樣的答案是根據關lifecycle of an activity的。

當用戶點擊主頁按鈕時,至少一個活動將被暫停。使用onPause()函數來檢測這個。從這一點你可以做很多事情,最基本的就是結束你的活動。調用finish()將會終止活動。這將允許您像平常一樣瀏覽活動,但如果您退出該活動,則會將其殺死。

如果活動變得更加複雜,則可能會因其他原因調用onPause(),如需要內存。可能值得添加一些額外的邏輯來檢測該人是否處於子功能中。

另一種方法是使用onRestart()函數,並簡單地完成活動。這可能會讓一些奇怪的東西備受矚目。

0

我在Manifest文件中進行了更改,並從作爲啓動器的活動B和C中刪除了意圖過濾器。現在,只要按下應用圖標,我就可以訪問登錄活動。