2012-10-15 152 views
0

我從活動A啓動活動B,現在我想回到活動A而不是啓動器時按Home鍵,如何實現?當我按Home鍵時如何從其他活動返回到我的活動?

我發現了一個類似的情況,LockPatternKeyguardView,它啓動了一個緊急撥號程序,然後按Home鍵,可以再次回到LockPatternKeyguardView,該怎麼做?

+0

這個鏈接可以幫助你:HTTP:/ /stackoverflow.com/questions/5547818/can-i-override-the-home-button-in-my-application –

回答

0

主頁按鈕是一個非常危險的重寫按鈕,因此,Android不會讓您重寫其行爲,就像您執行BACK按鈕一樣。

當按下主頁按鈕時,在您的活動中調用onStop方法。所以你可能做的是添加完成();在onStop方法中破壞你的活動。最終將提出onDestroy方法來確認您的活動已完成。

1

你不能覆蓋主頁按鈕的行爲,因爲如果你這樣做,你可以讓用戶永遠不會退出你的應用程序,而Android不會讓你這樣做。

0

當您按下按鈕時,您可以啓動您的活動。爲此,你必須將你的活動的行爲聲明爲HOME。

<intent-filter> 
    <action android:name="android.intent.action.MAIN" /> 
    <category android:name="android.intent.category.HOME" /> 
</intent-filter> 

但也有缺點此:

  1. 當您按下home鍵一選擇器​​將出現。這將讓您決定要啓動哪個活動。由於默認啓動器應用程序也具有相同的操作(HOME),它會詢問您要啓動哪個活動。
  2. 當用戶按下主頁按鈕時,您可以使您的活動成爲默認活動。您可以在按Home鍵後進行選擇器對話框時執行此操作,只需選中選擇器對話框上顯示的複選框即可。

在第二種情況下,當您按Home按鈕時,您可以將您的活動設爲默認活動,但不會啓動默認的Home Sceen,當您想要啓動其他應用程序時非常有用。所以總是建議不要處理主頁按鈕。

你也不能處理Home鍵相同的其他重要事件(如返回鍵,菜單鍵等)

0
case R.id.home:      
     Intent i = new Intent(this,Aactivity.class); 
     startActivity(i); 
     return true;  

我知道,我目前只有一個辦法....

+0

android.R.id.home – gonz

0

按主頁按鈕意味着用戶想要離開您的應用程序,並且您不應該覆蓋它以保留該用戶。此外,只有主頁按鈕能夠讓用戶擺脫困擾的應用程序。考慮將菜單項設置爲「主頁」或覆蓋後退按鈕。

0

當按下home鍵,活動去的onStop()state.So覆蓋的onStop()在活動B法,完成下面的activity.like,

protected void onStop() { 
     finish(); 
     super.onStop(); 
    } 
相關問題