2011-08-02 47 views
0

我幾乎已經完成開發Android應用程序。我使用GPS位置和短信接收器類。我可以看到,如果我按「HOME」(房子),它仍然在運行。我想關閉GPS監聽器和SMS_RECEIVER當主頁按鈕被按下時。Android應用程序:什麼是在後臺運行?

我正在使用eclipse和windows。

回答

1

使用主頁按鈕退出將使您的應用程序運行(根據我的理解,這更像是一個「最小化」按鈕)。完全使用後退。要覆蓋home鍵的功能實際上退出,使用:

@Override 
public boolean onKeyDown(int keyCode, KeyEvent event) { 
    // TODO Auto-generated method stub 
    if (event.getAction() == KeyEvent.ACTION_DOWN) { 
     switch (keyCode) { 
     case KeyEvent.KEYCODE_HOME: 
      finish(); 
      return true; 
     } 
    } 

    return super.onKeyDown(keyCode, event); 
} 
+4

傑克是正確的,但它是高度灰心的,以覆蓋主鍵默認操作 – Spidy

+0

是Spidy是正確的 - 你通常要符合Android的指導方針,而不是這樣做,但該選項可用。想想home按鈕,讓您的應用更多地作爲一個功能運行,而不是一個問題:P。你可以做的是重寫onPause()(或onStop)方法來停止你的locationservices和sms接收器,然後重寫onResume()來重新實例化它們。 – Jack

0

如果您使用BroadCast接收器(您可能在AndroidManifest.xml中使用單獨的類並聲明接收器),那麼考慮讓它們成爲您的活動的類成員。在Activity類中覆蓋onResume和onPause並在那裏註冊和取消註冊接收者。

+0

我沒有在單獨的類中使用BroadCast。 – boje