我有一个应用程序必须获取我在许多 Activity 中所处的位置。我发现这段非常有用的完整代码 here 。它如何使用后台服务获取当前位置。我在我的代码中实现了它。第一次运行正常。接下来,当达到这个if时
if (mPref.getString("service", "").matches("")) {
medit.putString("service", "service").commit();
Intent intent = new Intent(getApplicationContext(), GoogleService.class);
startService(intent);
} else {
Toast.makeText(getApplicationContext(), "Service is already running", Toast.LENGTH_SHORT).show();
}
我收到消息称服务已在运行。为什么会出现这种情况?我已经关闭并重新打开应用程序,为什么服务仍在运行?请帮助,这非常重要,谢谢
最佳答案
如果您使用 SharedPreferences
保留有关您的 Service
的信息,则该信息在应用重新启动后仍然存在,因此您的 if
条件始终为 false
(当您执行 mPref.commit()
时,您会将 key 对保存到文件中)。
关于java - 服务已经在运行,但它不应该在使用后台服务代码的位置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50890922/