我正在为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