Tôi đang nghĩ đến việc có hai báo động riêng biệt để thu thập dữ liệu vị trí của người dùng mỗi giờ, mỗi giờ mất 59 phút để "kết nối" máy khách và một giây để thực sự có được vị trí và sau đó ngắt kết nối máy khách.Cách tiếp cận sử dụng pin hiệu quả nhất khi sử dụng LocationClient để nhận các bản cập nhật định kỳ là gì?
Về tuổi thọ pin, có bất kỳ điều gì khác mà tôi nên cân nhắc khi thực hiện vị trí của người dùng sẽ là cống chính của ứng dụng không? Hoặc, có cách tiếp cận khác để có hai báo động không? Tôi ban đầu chỉ có một báo động duy nhất, nhưng thực hiện một (! MLocationClient.isConnected) sau đó kết nối kiểm tra không cung cấp cho khách hàng đủ thời gian để kết nối.
Cảm ơn thông tin chi tiết của bạn.
Hai báo động sẽ đi ra một cái gì đó như thế này:
private int PERIODIC_UPDATE = 60000*60; //gets location and disconnects every hour
private int PERIODIC_RECONNECTION_UPDATE = 60000*59; //connects 1 minute before getLocation call
Timer toReconnect = new Timer();
toReconnect.schedule(new TimerTask() {
@Override
public void run() {
mLocationClient.connect();
}
}, 5000, PERIODIC_RECONNECTION_UPDATE);
Timer theTimer = new Timer();
theTimer.schedule(new TimerTask(){
@Override
public void run() {
try {
if(!mLocationClient.isConnected()) {
mLocationClient.connect();
//This will not have much affect because cannot so quickly, will remove.
}
Location theLocation = mLocationClient.getLastLocation();
if(theLocation!=null) {
checkPostLocation(theLocation);
mLocationClient.disconnect();
}
} catch (Exception e) {
e.printStackTrace();
}
}}, 5000, PERIODIC_UPDATE);
Cách tiết kiệm pin nhất là tắt tất cả ứng dụng Messenger và để màn hình tắt. Sau đó, bạn có thể ghi lại GPS mỗi giây một lần trong hơn 8 giờ. – AlexWien
@ jsc123 Lưu ý rằng việc sử dụng Nhà cung cấp vị trí hợp nhất với "getLastLocation()" không đảm bảo vị trí GPS - bạn có thể nhận được vị trí chủ yếu dựa trên cảm biến, WiFi hoặc kết nối di động. Ngoài ra, bạn không nhất thiết phải buộc một vị trí mới, vì vậy bạn có thể nhận được cùng một vị trí bạn nhận được lần cuối nếu không có ứng dụng nào khác, bao gồm cả Google Services, đã yêu cầu vị trí được cập nhật. –
@SeanBarbeau, việc triển khai của tôi có tốt nhất không nếu tôi luôn cố gắng lấy vị trí chính xác nhất định kỳ, mặc dù nó là một cống lớn hơn? – NumenorForLife