伙计们!我正在尝试构建一个应用程序,它使用一些包作为位置(https://pub.dev/packages/location)和指南针(https://pub.dev/packages/flutter_compass)并保持后台服务跟踪用户位置. 一切正常,直到我启动服务来跟踪位置。
随着服务处于活动状态,整个应用程序永远不会停止,例如,当我在没有服务的情况下关闭应用程序时,指南针也会停止,但是随着服务的运行,指南针也会继续运行。实际上它返回一个错误“试图向 Flutter 发送平台消息,但 FlutterJNI 与本机 C++ 分离。无法发送。通道:hemanthraj/flutter_compass”。位置也会发生同样的事情:“试图向 Flutter 发送平台消息,但 FlutterJNI 与本机 C++ 分离。无法发送。通道:lyokone/locationstream”。在此之后,即使我再次打开该项目,它也不再起作用......我正在尝试使服务完全独立于项目的其余部分。
我将向您展示服务实现(Android)
public class CompassApplication extends FlutterApplication {
@Override
public void onCreate() {
super.onCreate();
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {
NotificationChannel channel = new NotificationChannel("messages", "Messages", NotificationManager.IMPORTANCE_LOW);
NotificationManager manager = getSystemService(NotificationManager.class);
if (manager != null) {
manager.createNotificationChannel(channel);
}
}
}
}
Run Code Online (Sandbox Code Playgroud)
class MainActivity: FlutterActivity() {
override fun configureFlutterEngine(@NonNull flutterEngine: FlutterEngine) {
GeneratedPluginRegistrant.registerWith(flutterEngine)
val intent = Intent(this, LocationService::class.java)
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {
startForegroundService(intent) …Run Code Online (Sandbox Code Playgroud)