gpt4 book ai didi

Android:仅当位置已更改时,才每 15 分钟将用户位置发送到服务器?

转载 作者:行者123 更新时间:2023-11-29 01:38:28 26 4
gpt4 key购买 nike

我的应用程序为用户提供了与位置相关的通知,这意味着我需要尽可能实时地了解用户的位置,而不会对电池造成太大压力。我进行了一些研究并创建了以下选项列表

  • partial Wakelock:让屏幕超时,但 CPU 继续执行任务。但我只希望我的后台代码每 n 秒调用一次,检查位置更新,如果位置发生变化,则将其发送到服务器。
  • AlarmManager:我可以用它来设计循环任务,但不确定它是否会无限期地在后台运行,是否会被用户故意杀死。

只要应用程序安装在用户手机上,我希望每 n 秒调用一次我的后台代码。我正在寻找理论答案而不是实际代码,因为我需要了解我在做什么。

最佳答案

你可以像下面这样使用Service类,

public class StartService extends Service {

Timer timer = new Timer();
private final int TIME_INTERVAL = 10000;
GPSTracker GPSTracker;
Double latitude ;
Double longitude ;



@Override
public IBinder onBind(Intent intent) {
// TODO Auto-generated method stub
return null;
}

@Override
public void onCreate() {
// TODO Auto-generated method stub
super.onCreate();
GPSTracker = new GPSTracker(StartService.this);
}

@Override
public int onStartCommand(Intent intent, int flags, int startId) {
// TODO Auto-generated method stub
doTimerThings();
return super.onStartCommand(intent, flags, startId);
}

private void doTimerThings()
{
timer.scheduleAtFixedRate(new TimerTask() {

@SuppressLint("DefaultLocale")
@TargetApi(Build.VERSION_CODES.GINGERBREAD)
@Override
public void run() {



latitude = GPSTracker.getLatitude();
longitude = GPSTracker.getLongitude();

// you get the lat and lng , do your server stuff here-----

System.out.println("lat------ "+latitude);
System.out.println("lng-------- "+longitude);
}

}, 0, TIME_INTERVAL);

}




@Override
public void onDestroy() {
super.onDestroy();
}


}

关于Android:仅当位置已更改时,才每 15 分钟将用户位置发送到服务器?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26375997/

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