我正在爲Android編寫基於GPS的應用程序。我想要一個按鈕來退出應用程序,這將關閉GPS,但我不想回到家裏或關閉這個程序。退出Android應用程序按鈕 - 真的
我已閱讀This線程和許多其他人做了很好的解釋爲什麼我不想做我想做的事情。問題是,有後臺進程,如果我只是退出應用程序的箭頭,GPS仍在運行。我明白我可以用OnStop()或OnPause()來關閉它們,但是我不想要後退箭頭或回家來停止任何操作。我希望所有的GPS和處理程序繼續運行,無論用戶做什麼,除非他在我的主屏幕上點擊EXIT,然後將他帶到另一個確認退出並進行清理的屏幕。這樣,用戶可以將箭頭從退出屏幕退出,而不會在實際退出時被誤操作。
請注意,此應用程序將用於帶有手套的惡劣條件下的明亮陽光下。讀取任何東西非常困難,所以我使用高對比度的高對比度字體100。除非用戶真的希望它停止,否則它不能停下來。但讓它運行會殺死電池。我對系統的行爲沒有任何問題,如果我只是讓它運行,只是想到電池將耗盡,並且我不希望任何簡單的按鈕按下(這可能是偶然的),以停止服務。我希望它很難殺死這個應用程序後臺進程,因爲它是關閉手機,但我希望能夠做到這一點。
我試過完成(),這只是一個後退箭頭,以及我在過去三個小時的Google搜索中看到的其他所有方法。我曾考慮將我的EXIT按鈕更改爲關閉GPS按鈕,但如果用戶使用後退箭頭退出,他會進入主頁面並重新打開GPS。
只是要清楚。我的應用程序有一個基於菜單的主屏幕。如果後退箭頭被擊中,任何有用的頁面將返回到該菜單。其中一個菜單項是EXIT。點擊該菜單項會將您帶到一個退出屏幕,該屏幕上有一個顯示EXIT的按鈕。如果用戶偶然來到這裏,他可以退回到菜單。如果他點擊退出頁面上的EXIT按鈕,我可以關閉所有處理程序和GPS,然後進入手機或平板電腦主屏幕。至少這是我想要的,不知道該怎麼做。
我已經使用類似的應用程序,使用OnStop()或OnPause()來關閉GPS,他們是一個痛苦。這不是我想要的。請不要告訴我這就是我想要做的。我知道該怎麼做。這不是我所要求的。
謝謝。
UPDATE:
感謝Chris我幾乎解決了這一點。我可以把我的處理程序和GPS了與我的退出按鈕,然後運行該代碼
Intent startMain = new Intent(Intent.ACTION_MAIN);
startMain.addCategory(Intent.CATEGORY_HOME);
startMain.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
startActivity(startMain);
更新#2 ,我只是在進一步的測試中發現的問題是,應用程序返回到屏幕上的退出時,它是要求第二次。
UPDATE#3 Adding finish();在startActivity(startMain)後似乎工作。完成後向後進入主菜單。希望一旦我安裝了所有的代碼,它仍然可以工作。我刪除了第三線之上所以我現在是這樣的:
Intent startMain = new Intent(Intent.ACTION_MAIN);
startMain.addCategory(Intent.CATEGORY_HOME);
startActivity(startMain);
finish();
使用'onStop'和'onPause' ...大聲笑jk – 2012-07-08 17:09:04
請看看我的答案。我認爲這比你一直在玩的解決方案簡單得多。 – 2012-07-08 19:53:19