1-如何禁用多任務處理? 我的應用程序是一個基於套接字的遊戲,每當我啓動應用程序,它必須首先加載主頁面以啓動套接字連接? 我不希望用戶能夠在後臺運行我的應用程序。 這可能嗎?Android ==>禁用多任務處理?
2-我不希望用戶能夠使用後退按鈕在頁面之間進行導航,用戶只能使用我的應用程序中可用的按鈕進行導航?這可能嗎?
1-如何禁用多任務處理? 我的應用程序是一個基於套接字的遊戲,每當我啓動應用程序,它必須首先加載主頁面以啓動套接字連接? 我不希望用戶能夠在後臺運行我的應用程序。 這可能嗎?Android ==>禁用多任務處理?
2-我不希望用戶能夠使用後退按鈕在頁面之間進行導航,用戶只能使用我的應用程序中可用的按鈕進行導航?這可能嗎?
您可以捕獲後退按鈕(並忽略它),但不能阻止Home按鈕。
@Override
public boolean onKeyDown(int keyCode, KeyEvent event)
{
if (keyCode == KeyEvent.KEYCODE_BACK)
{
return true;
}
...
記住,手機只是另一種應用程序,以便該OS設計防止惡意應用程序從禁用設備的「電話」的方面。
如果你想阻止應用程序在後臺運行,您可以在onPause內關閉活動()方法:
@Override
protected void onPause()
{
super.onPause();
finish();
}
這將迫使你的應用程序從頭開始,如果它放在出於任何原因進入背景。這可能會在手機進入睡眠狀態時被調用,但是,它可能不是您正在尋找的確切行爲。
非常感謝,很好的答案。 1問題:我在哪裏寫你提供的第二個代碼?在每一個活動? – aryaxt 2010-08-14 01:03:21
onPause()代碼需要進入任何不希望允許在後臺運行的活動。正如Chinmay Kanchi所說的那樣,你反對Android的理念,所以用這種方式設計你的應用將會非常困難。下面是更詳細的解釋什麼時候生命週期函數被調用時:http://developer.android.com/guide/topics/fundamentals.html#actlife – 2010-08-14 01:11:10
1更多的東西:),我有一個服務(套接字)運行在背景。調用finish()是否也會終止服務? – aryaxt 2010-08-14 01:56:30
這只是糟糕的設計。您需要支持硬件按鈕,並且您需要從被推入後臺的過程中優雅地恢復。 AFAIK,這些都是Android的基本設計哲學...... – 2010-08-14 00:53:01
這不是真的。您不希望始終保持插座連接,導致電池死亡。當用戶不活動時,客戶機/服務器應用程序保持連接並不好,這只是浪費帶寬,並會降低服務器的速度 – aryaxt 2010-08-14 01:00:06
1.什麼鬼東西? 2.如果您的應用程序不作爲服務運行。套接字在後臺不會活着。你應該閱讀一下android應用程序的生命週期。只有服務會在後臺繼續工作,所有其他應用程序都處於「睡眠」模式。除非我讀錯了。 3.您可以防止某人在瀏覽器中查看並回到遊戲中,或者接聽電話並返回遊戲。 4.如果套接字處於活動狀態,您應該嘗試處理重新連接/測試。如果您將其作爲服務運行,請添加「空閒超時」並根據請求重新連接。 – 2010-08-14 13:54:20