java - 服务已经在运行,但它不应该在使用后台服务代码的位置

标签 java android service location background-service

我有一个应用程序必须获取我在许多 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/

相关文章:

java - 调用其他类方法的代码效率

java - 无法从 java 连接到 MySql

android - ArrayAdapter 中 ListView 第一行的不同布局

java - 线程中的异常 "main"java.lang.IllegalArgumentException : Trying to set foreign cookie

android - IntentService 启动期间出现 java.lang.NullPointerException

java - 向 Activity 发送包数据的 Android 服务为 NULL

Java Time(4,129) 应给出 6 小时 9 分钟

Java 已启动但返回退出代码=13 eclipse

android - 如何将自定义图像设置为不在可绘制文件夹内的背景

javax.命名.NameNotFoundException : Name ejb/com not found in context "java:comp/env"