我想创建一个不断检查位置变化并将当前位置放入 firebase 的应用程序(例如跑步者的应用程序)。
\n\n不幸的是,每次设备进入睡眠模式时,前台服务都会停止或暂停。
\n\n对于初学者,我想创建一个前台服务,每秒不断地将信息写入基础(这将是一个时间戳或一个简单的字符串)。\n一段时间后,它只是停止写入 firebase 而不调用 stopself()。
\n\n该服务在模拟器上运行良好(即使处于睡眠状态),但在真实设备 \xe2\x80\x93 上测试时停止(在我的情况下为华为,Android 8.1.0)。\n我应该做什么来强制服务运行在设备的每个状态下?
\n\nMy MainActivity: \n\npublic class MainActivity extends AppCompatActivity {\n @Override\n protected void onCreate(Bundle savedInstanceState) {\n super.onCreate(savedInstanceState);\n setContentView(R.layout.activity_main);\n\n if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {\n Intent intent = new Intent(this, MyService.class);\n intent.putExtra("action", "start");\n startForegroundService(intent);\n }\n else {\n Intent intent = new Intent(this, MyService.class);\n intent.putExtra("action", "start");\n startService(intent);\n }\n }\n\n @Override\n protected void onDestroy() {\n super.onDestroy();\n if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {\n Intent intent = new Intent(this, MyService.class);\n intent.putExtra("action", "stop");\n startForegroundService(intent);\n …Run Code Online (Sandbox Code Playgroud)