android - onClick 等待 1 秒然后运行代码

标签 android onclick locationmanager

我有这段代码,通过点击按钮,相机会在我在 map 上的位置居中。

问题是:当我第一次点击时,相机离我的位置太远,我怀疑 onClick 方法使位置管理器只获得部分坐标(当我第二次点击同一个按钮时它得到了正确的位置。)

所以,这是代码:

我想尝试的是:

  1. 我点击按钮

2.

   locationManager = (LocationManager) getSystemService(Context.LOCATION_SERVICE)
   location= locationManager.getLastKnownLocation(LocationManager.NETWORK_PROVIDER);
   longitude = location.getLongitude();
   latitude = location.getLatitude();
   latlng = new LatLng(latitude, longitude);

这段代码运行

  1. 等一秒

4.

   CameraUpdate center = CameraUpdateFactory.newLatLng(latlng);
   CameraUpdate zoom = CameraUpdateFactory.zoomTo(15);
   map.moveCamera(center);
   map.animateCamera(zoom);
   map.addMarker(new MarkerOptions()
   .position(latlng));

此代码运行。

这可能吗?

抱歉这个基本问题,但我是 Java/Android 编程的新手(3 周左右,我仍然发现一些像这样的基本东西很难实现)。

PS:代码运行几乎完美,唯一困扰我的是我必须点击两次才能到达它应该在的位置(在第一次点击时它得到大约 3 到 4距离它公里 - 估计计算)

最佳答案

最好的方法是使用处理程序。尝试以下:

Handler handler = new Handler();
handler.postDelayed(new Runnable() {
@Override
public void run() {
   CameraUpdate center = CameraUpdateFactory.newLatLng(latlng);
   CameraUpdate zoom = CameraUpdateFactory.zoomTo(15);
   map.moveCamera(center);
   map.animateCamera(zoom);
   map.addMarker(new MarkerOptions()
   .position(latlng));
    }
},1000); //adding one sec delay

尝试查看此内容以获取有关处理程序的更多信息。

www.vogella.com/tutorials/AndroidBackgroundProcessing/article.html

关于android - onClick 等待 1 秒然后运行代码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25352115/

相关文章:

android - 如何使用 NDK 查找我的 C++ 编写的 Android 应用程序的内存使用情况

android - LocationManager.getLastKnownLocation() 返回 null,永远不会调用 onLocationChanged

android - 在 GPS 中获取最近的地方与我在 android 中的当前位置进行比较

android - 在运行时更改 Android 中自定义进度条的颜色

android:theme ="@android:style/Theme.NoTitleBar.Fullscreen"安卓不工作

Javascript,将事件绑定(bind)到 div 标签时出现问题

jquery - 为 d3 map 上的点击事件设置颜色

android - 调用 "removeUpdates"后 GPS 系统不会重新启动

android - Dagger 中的多次注入(inject)

javascript - HTML 表单 onclick 事件不调用 javascript 函数