应用关闭时如何运行onLocationChanged方法(使用onStop方法)

时间:2019-06-15 07:34:47

标签: java android locationlistener

我有这种方法可以管理我的位置:

undefined reference to 'pthread_create'

但是我希望MainActivity关闭时可以运行此方法。我读到这件事,有两种方法可以做到这一点:使用服务或使用onStop方法。

我更喜欢第二种方法,使用onStop方法,但是我不知道如何在onStop方法中调用onLocationChanged。

2 个答案:

答案 0 :(得分:2)

我希望这可以对您有所帮助。 在Android中,有位置管理器,它提供对系统位置服务的访问。 您可以使用此类触发onLocationChanged事件。

LocationManager locationManager = (LocationManager) getSystemService(LOCATION_SERVICE);

// Get the best provider  for the criteria
Criteria criteria = new Criteria();
criteria.setPowerRequirement(Criteria.POWER_LOW);
criteria.setAccuracy(Criteria.ACCURACY_FINE);

String bestprovider = locationManager.getBestProvider(criteria,false);
locationManager.requestLocationUpdates(bestprovider,0, 0, this);

如果您在onStop方法中插入某些代码,则会触发onLocationChanged事件。

答案 1 :(得分:1)

覆盖您的onStop方法并以这种方式获取用户的最后一个已知位置

fusedLocationClient.lastLocation
    .addOnSuccessListener { location : Location? ->
        // Got last known location. In some rare situations this can be null.
    }

请参阅此链接以获取更多详细信息https://developer.android.com/training/location/retrieve-current,因为您已经在onSuccessListener的回叫下获得了用户的位置,您可以将该位置更新到Firebase数据库/服务器

注意,根据您的要求,您可以在主线程或其他线程上运行此代码