我幾乎已經完成開發Android應用程序。我使用GPS位置和短信接收器類。我可以看到,如果我按「HOME」(房子),它仍然在運行。我想關閉GPS監聽器和SMS_RECEIVER當主頁按鈕被按下時。Android應用程序:什麼是在後臺運行?
我正在使用eclipse和windows。
我幾乎已經完成開發Android應用程序。我使用GPS位置和短信接收器類。我可以看到,如果我按「HOME」(房子),它仍然在運行。我想關閉GPS監聽器和SMS_RECEIVER當主頁按鈕被按下時。Android應用程序:什麼是在後臺運行?
我正在使用eclipse和windows。
你可以聽的的onStop事件和關閉的聽衆。
注:也許在onPause或的onDestroy可能是更好的選擇。閱讀activity life-cycle並選擇最佳點來做到這一點。
使用主頁按鈕退出將使您的應用程序運行(根據我的理解,這更像是一個「最小化」按鈕)。完全使用後退。要覆蓋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);
}
如果您使用BroadCast接收器(您可能在AndroidManifest.xml中使用單獨的類並聲明接收器),那麼考慮讓它們成爲您的活動的類成員。在Activity類中覆蓋onResume和onPause並在那裏註冊和取消註冊接收者。
我沒有在單獨的類中使用BroadCast。 – boje
傑克是正確的,但它是高度灰心的,以覆蓋主鍵默認操作 – Spidy
是Spidy是正確的 - 你通常要符合Android的指導方針,而不是這樣做,但該選項可用。想想home按鈕,讓您的應用更多地作爲一個功能運行,而不是一個問題:P。你可以做的是重寫onPause()(或onStop)方法來停止你的locationservices和sms接收器,然後重寫onResume()來重新實例化它們。 – Jack