我有以下错误
Skipped 40 frames! The application may be doing too much work on its main thread.
研究过它......确保一切尽可能用Runnables以新线程开始 . 但不断得到错误 . 我几乎评论了我的所有代码,并在我开始一项新活动时仍然得到了它 . 然后我从我的第一个活动中评论了这个mapfragment,并且错误消失了 . So the error is caused by following piece of code:
<fragment xmlns:android="http://schemas.android.com/apk/res/android"
android:name="com.google.android.gms.maps.MapFragment"
android:id="@+id/map"
android:layout_width="match_parent"
android:layout_height="200dp"
/>
我从谷歌 Map API for Android docs得到了这个...有点奇怪,它没有优化 . 如何确保错误消失?我可以延迟mapFragment的加载吗?
一旦我打开活动一次......并再次重新打开它,警告就消失了,因为它已经在内存中了......但是我想拥有最好的优化应用程序 .
To avoid confusion 这是导致延迟的setContentView,因为mapFragment已加载到此函数中 . 延迟会引发警告 . 我的问题:如何加速setContentView,因此mapFragment预先加载或在活动打开后加载 .
2 回答
setContentView() slow with map fragment
这包含答案 . 深深地隐藏在谷歌,但发现它!
试试这样吧
getMapAsync(OnMapReadyCallback回调)您可以在GoogleMap准备就绪时设置侦听器