public void getGPS(View view) {
// load all available Location providers
locationManager = (LocationManager) getSystemService(Context.LOCATION_SERVICE);
List<String> providers = locationManager.getProviders(false);
// determine the last known location within 2 hours available from cache
Location myLocation = null;
Date now = new Date();
long time = now.getTime();
long timeDiff = LOCATION_MAX_AGE;
for (int i=providers.size()-1; i>=0; i--) {
Location l = locationManager.getLastKnownLocation(providers.get(i));
if (l != null) {
long t = l.getTime();
if (time - t < timeDiff) {
myLocation = l;
time = t;
timeDiff = time - t;
}
}
}
// if failed to get cached location or if it is older than 2 hours, request GPS position
if (myLocation == null) {
if (locationManager.isProviderEnabled(LocationManager.GPS_PROVIDER)) {
pIntent = PendingIntent.getBroadcast(context,
0,
new Intent(SINGLE_UPDATE_ACTION),
PendingIntent.FLAG_UPDATE_CURRENT);
IntentFilter iFilter = new IntentFilter(SINGLE_UPDATE_ACTION);
receiver = new BroadcastReceiver() {
@Override
public void onReceive(Context context, Intent intent) {
// when received an answer from the LocationManager
Location gpsLocation = (Location) intent.getExtras().get(LocationManager.KEY_LOCATION_CHANGED);
fillLocation(gpsLocation);
Log.d(TAG, "Received GPS location: " + gpsLocation.getLatitude() + ", " + gpsLocation.getLongitude() + " Time: " + gpsLocation.getTime());
locationManager.removeUpdates(pIntent);
unregisterReceiver(receiver);
}
};
context.registerReceiver(receiver, iFilter);
// I'm absolutely fine with getting the first available GPS position and that's enough to me.
locationManager.requestSingleUpdate(LocationManager.GPS_PROVIDER, pIntent);
// if GPS is disabled in settings allow user to enable it
} else {
showGPSDisabledAlertToUser();
}
} else {
// if fresh enough lastKnownLocation is found
fillLocation(myLocation);
}
}
我建议您使用ProgressDialog来通知正在等待修复的用户。您还可以设置消息并向其添加cancel
按钮。查看此链接:如何设置取消按钮在进行对话框?
如果用户取消ProgressDialod
,那么您将以手动输入请求启动屏幕。
问候。
问题内容: 我有 如果正在使用entitymanager,如何检索会话?如何从分离标准中获取结果? 问题答案: 为了完全详尽无遗,如果您使用的是JPA 1.0或JPA 2.0实现,则情况有所不同。 JPA 1.0 对于JPA 1.0,您必须使用。但是请记住, 此方法的结果是特定 于 实现的, 即从使用Hibernate的应用程序服务器到其他服务器之间不可移植。例如,使用JBoss,您可以执行以下操
本文向大家介绍Android中如何取消listview的点击效果,包括了Android中如何取消listview的点击效果的使用技巧和注意事项,需要的朋友参考一下 在xml文件里面有listselecter的属性引用 引用transparent之后会让点击效果透明化,昨天整了半天才搞出来,记录一下。 PS:去除或替换listview 默认的点击选中时的颜色 1.去除默认的点击选中时的颜色 (1)设
本文向大家介绍proimise 如何取消相关面试题,主要包含被问及proimise 如何取消时的应答技巧和注意事项,需要的朋友参考一下 No description provided.
本文向大家介绍如何取消promise?相关面试题,主要包含被问及如何取消promise?时的应答技巧和注意事项,需要的朋友参考一下 Promise/A+标准规定了:原Promise对象跟新返回的对象状态一致。所以可以通过返回一个始终是pending状态的Promise对象来取消Promise。 Promise.resolve().then(() => { console.log(1) return
我必须取消此系统(附件如下)。我正在获取这个值,但是我不能在服务中,而不是在活动中,以编程方式取消它。 我的问题是: null
问题内容: 我正在使用Java 8可完成的期货。我有以下代码: 我使用runAsync计划执行等待闩锁的代码。接下来,我取消了将来,希望将被中断的异常抛出内部。但是似乎线程在await调用上仍然处于阻塞状态,即使将来被取消(断言通过)也永远不会抛出InterruptedException。使用ExecutorService的等效代码可以正常工作。是CompletableFuture中的错误还是我的