我的 android 应用程序被设计为用户可以阻止它的唯一方法是点击手机上的后退键。当那个键被按下时,onStop 事件确实在我有一个日志命令的地方执行,我执行 super.onStop();
但应用程序并没有停止。我知道这一点是因为我有一个计时器,它经常响起并给我发送一封包含调试条目的电子邮件。
(它不通过电话发送电子邮件,而是通过邮件发送到我发送电子邮件的服务器)。
在我“停止应用程序”之后,我整天都会收到电子邮件——它肯定还在运行。
如果我检查手机(Galaxy S3)的“正在运行”的应用程序,它没有列出,但如果我查看应用程序的属性,则启用了“强制关闭”。如果我点击“强制关闭”应用程序然后停止发送电子邮件。
我怎样才能让这个应用程序停止?
谢谢,加里
这是我的编辑。. .
下面的计时器执行我的 getRTlegsFromServer,它调用一个与我的 REST 服务对话的异步任务。DebugLog 通过另一个 REST 服务向我发送电子邮件。这一切都很好,实际上很好,以至于无法停止。我在我的电子邮件中收到“onStop 事件”,然后整天收到更多 DebugLog 消息,直到我在电话上强制停止。
timer = new Timer();
timer.schedule(new TimerTask()
{
@Override
public void run()
{
TimerMethod();
}
}, 0, 10*1000);
private void TimerMethod()
{
//debugLog("TimerMethod is executing", false);
runOnUiThread(new Runnable()
{
@Override
public void run()
{
if (timeForAnother == true)
{
getRTlegsFromServer();
}
else
{
DebugLog.debugLog("NOT making server call because timeForAnother is false", false);
}
}
});
}
@Override
public void onStop()
{
DebugLog.debugLog("onStop event ", true);
//timer.cancel();
super.onStop();
}
timer.cancel() 被注释掉(我试图停止它),因为它得到了 NullPointerException。我在其他线程上读到 KillProcess 解决方案是个坏主意。此应用程序不使用任何服务。