我想在我的一个Activity中使用SupportMapFragment.我将此片段直接添加到布局xml,并将此布局设置为内容视图.但是当Activity第一次启动时,它需要太长时间(超过1秒).接下来的发布是好的,需要几毫秒.
我试过了:
但没有任何帮助.显示地图没有任何问题或可疑日志.
你有什么建议,它是什么原因以及如何改进它?
编辑: 我有一个ListView,当用户点击Item时,它会使用MapFragment启动DetailActivity.单击项目后,在DetailActivity出现之前会有明显的延迟.只有onCreate方法,我调用setContentView,运行时间超过1秒.虽然活动在onCreate方法中,但此活动没有可见内容.点击和显示内容之间的这种延迟不是非常用户友好.
谢谢
我的应用程序有三个不同的活动使用a SupportMapFragment.启动应用程序后第一次加载会出现重大延迟.即使我返回并访问完全不同的Activity(也包含地图),后续加载时也不会出现这种缓慢的加载时间.我想知道这是否是我能解决的问题.
这个要点显示了我如何加载SupportMapFragment.使用调试点我已经确定缓慢发生在onViewCreated和之间onStart.
更新1:使用Debug我已经采取了第一次加载和第二次加载的两条痕迹.第二个负载是完全不同的Activity.我很快注意到第一个跟踪(慢速加载)有很多调用java/util/zip/zipEntry.在第二个跟踪中我没有看到任何类似的调用.此外,这种延迟现象之间onCreateView和onViewCreated的MapFragment的.
更新2:这也发生在MapFragment(不支持),但延迟实际上要长得多.
在默认情况下SupportMapFragment,当Fragment被即时化时,正在加载和创建MapView,从而在主线程上执行繁重的工作.
getMapAsync(this);调用之前发生以下日志,它是主线程冻结约2秒钟的时刻.日志证明以前创建了所有内容getMapAsync().
是不是只有在getMapAsync()调用时才会加载地图?
I/OpenGLRenderer: Initialized EGL, version 1.4
D/OpenGLRenderer: Enabling debug mode 0
D/OpenGLRenderer: endAllActiveAnimators on 0xb7966f90 (RippleDrawable) with handle 0xb7988688
I/AppCompatViewInflater: app:theme is now deprecated. Please move to using android:theme instead.
I/zzy: Making Creator dynamically
W/ResourcesManager: Asset path '/system/framework/com.android.media.remotedisplay.jar' does not exist or contains no resources.
W/ResourcesManager: Asset path '/system/framework/com.android.location.provider.jar' does not exist or contains no resources.
W/art: Suspending all threads took: 5.704ms
D/ChimeraCfgMgr: Loading module com.google.android.gms.maps from APK /data/data/com.google.android.gms/app_chimera/chimera-module-root/module-fcfb08c37b9ca44c48d9936b0e1895ef8b9cffe0/MapsModule.apk
D/ChimeraModuleLdr: …Run Code Online (Sandbox Code Playgroud)