gpt4 book ai didi

java - 在android的服务中调用位置管理器两次

转载 作者:行者123 更新时间:2023-12-01 04:43:04 27 4
gpt4 key购买 nike

我尝试在我的服务中两次调用位置管理器。

首先它会调用 Manager onStart,然后我将计时器设置为 20 秒,然后再次调用它。

第一次工作正常,但第二次 20 秒后,位置管理器根本没有被调用。

下面是我尝试过的代码:

     public void onStart(Intent intent, int startId) 
{
super.onStart(intent, startId);

Log.e("Location1", "Inside onStart");

t = new Timer();

locationFirst = "First";

talker = new TextToSpeech(this, this);

location = (LocationManager) getSystemService(Context.LOCATION_SERVICE);


locationListener = new MyLocationListener();
location.requestLocationUpdates(LocationManager.NETWORK_PROVIDER, 5000, 10,locationListener);
}

public void testMethod()
{
//Declare the timer


//Set the schedule function and rate
t.scheduleAtFixedRate(new TimerTask() {

@Override
public void run() {

Log.e("Time",""+time);
time += 1;
String todis = String.valueOf(time);


if(todis.contains("20"))
{
Looper.myLooper();
Looper.prepare();

talker.speak("Testing Service inside 20 in a App",TextToSpeech.QUEUE_ADD,null);
locationFirst = "Second";
locationTocall();
time = 0;
t.cancel();

}

}

}, 0, 1000);


}


public void locationTocall()
{
locationListener = new MyLocationListener();
location.requestLocationUpdates(location.NETWORK_PROVIDER, 5000, 10,locationListener);
}


private class MyLocationListener implements LocationListener
{
@Override
public void onLocationChanged(Location loc)
{
Log.e("Location1", "Inside MyLocation");

String longitude = String.valueOf(loc.getLongitude());
String latitude = String.valueOf(loc.getLatitude());

String s = latitude+"\n"+longitude;

Log.e ("Location1", " "+s);

location.removeUpdates(locationListener);
if(locationFirst.equalsIgnoreCase("FIRST"))
{
testMethod();
}
else
{

}
}

@Override
public void onProviderDisabled(String provider) {

}

@Override
public void onProviderEnabled(String provider) {

}

@Override
public void onStatusChanged(String provider, int status, Bundle extras) {

}

}

最佳答案

您的情况下位置更新的最小距离为 10 米也许是因为这个。

关于java - 在android的服务中调用位置管理器两次,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16233448/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com