2013-04-12 19 views
0

我正在開發應啓動一個應用程序,用戶不能關閉該應用程序或離開它。所以我需要禁用所有3個按鈕(Back,Home,Multitask)。禁用後退按鈕很容易,只能覆蓋onBackPressed()方法。但我怎麼能禁用家庭和多任務。我讀過主頁按鈕的覆蓋是不可能在4.0 + Android中,所以我怎麼能做到這一點?我能阻止多任務按鈕,因此用戶無法從應用程序中逃脫嗎?禁用從Android應用程序轉義android 4.0+

PS:此應用程序將永遠不會在Android電子市場上發佈,因此解決方案可以成爲「規則」。

+1

我認爲你不能這樣做...... –

+0

你可以「控制」主頁按鈕,如果你將ypp設置爲這樣的啓動器: ' ' – bricklore

回答

1

返回按鈕

http://developer.android.com/guide/components/tasks-and-back-stack.html

假設你在活性的您導航到B,然後到C.在活動c您按下後退按鈕時,活性C從彈出堆棧被破壞並顯示前一個B的活動

假設您希望從C導航到A,那麼您可以覆蓋返回按鈕按下

@Override 
public boolean onKeyDown(int keyCode, KeyEvent event) { 
if (keyCode == KeyEvent.KEYCODE_BACK) { 
onBackPressed(); 
} 

return super.onKeyDown(keyCode, event); 
} 

public void onBackPressed() { 
Intent myIntent = new Intent(C.this, A.class); 
myIntent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP); // clear back stack 
startActivity(myIntent); 
finish(); 
return; 
} 

爲homeButton

沒有辦法攔截在Android home鍵,除非你讓你的應用程序的主屏幕。這是出於安全原因,因此惡意應用無法通過覆蓋可退出的所有按鈕來接管設備。主頁按鈕是能夠離開任何應用程序的一種可靠的拍攝方式。

如果要處理HOME按鈕,請實施主屏幕。您無法禁用主頁按鈕。

機器人:launchMode = 「標準| singleTop | singleTask | singleInstance」

檢查活動launchmode @http://developer.android.com/guide/topics/manifest/activity-element.html#lmode爲singleInstance。該設備一次只能容納一個活動的實例 - 只有一個這樣的任務。

相關問題