私のアプリには MapView があり、それに OverlayItems を約 500追加しますが、将来的にはさらに数千になるでしょう...
私の問題は次のとおりです。このアクティビティに切り替えると、3 ~ 4 秒の大規模な停電が発生し、適切に切り替わり、マップをナビゲートしてタップできます。
数か月前、アプリの mapView に 50 ~ 150 のジオポイントしか含まれていなかったとき、ブラックアウトは発生しませんでした。したがって、OverlayItem を mapView に追加すると何か問題があると思います。実際にアプリが遅くなります。
アクティビティの起動時に簡単なサイクルでジオポイントを追加します。
このアクティビティを高速化し、ブラックアウトを防ぐにはどうすればよいですか?
編集:
コメントのおかげで、addOverlay(MyOverlayItem myoverlay)関数呼び出しのたびにpopulate()を呼び出すことに気付きました。
コードを編集しましたが、サイクルの後、次の方法で一度だけ呼び出します。
public void populateNow()
{
populate();
}
しかし、これで素晴らしいヌルポインター例外が発生しました...何かアイデアはありますか?
11-12 15:54:03.398: E/MapActivity(1534): Couldn't get connection factory client
11-12 15:54:03.531: E/AndroidRuntime(1534): FATAL EXCEPTION: main
11-12 15:54:03.531: E/AndroidRuntime(1534): java.lang.NullPointerException
11-12 15:54:03.531: E/AndroidRuntime(1534): at com.google.android.maps.ItemizedOverlay.getIndexToDraw(ItemizedOverlay.java:211)
11-12 15:54:03.531: E/AndroidRuntime(1534): at com.google.android.maps.ItemizedOverlay.draw(ItemizedOverlay.java:240)
11-12 15:54:03.531: E/AndroidRuntime(1534): at com.google.android.maps.Overlay.draw(Overlay.java:179)
11-12 15:54:03.531: E/AndroidRuntime(1534): at com.google.android.maps.OverlayBundle.draw(OverlayBundle.java:42)
11-12 15:54:03.531: E/AndroidRuntime(1534): at com.google.android.maps.MapView.onDraw(MapView.java:530)
11-12 15:54:03.531: E/AndroidRuntime(1534): at android.view.View.draw(View.java:6933)
11-12 15:54:03.531: E/AndroidRuntime(1534): at android.view.ViewGroup.drawChild(ViewGroup.java:1646)
11-12 15:54:03.531: E/AndroidRuntime(1534): at android.view.ViewGroup.dispatchDraw(ViewGroup.java:1373)
11-12 15:54:03.531: E/AndroidRuntime(1534): at android.view.ViewGroup.drawChild(ViewGroup.java:1644)
11-12 15:54:03.531: E/AndroidRuntime(1534): at android.view.ViewGroup.dispatchDraw(ViewGroup.java:1373)
11-12 15:54:03.531: E/AndroidRuntime(1534): at android.view.View.draw(View.java:6936)
11-12 15:54:03.531: E/AndroidRuntime(1534): at android.widget.FrameLayout.draw(FrameLayout.java:357)
11-12 15:54:03.531: E/AndroidRuntime(1534): at android.view.ViewGroup.drawChild(ViewGroup.java:1646)
11-12 15:54:03.531: E/AndroidRuntime(1534): at android.view.ViewGroup.dispatchDraw(ViewGroup.java:1373)
11-12 15:54:03.531: E/AndroidRuntime(1534): at android.view.View.draw(View.java:6936)
11-12 15:54:03.531: E/AndroidRuntime(1534): at android.widget.FrameLayout.draw(FrameLayout.java:357)
11-12 15:54:03.531: E/AndroidRuntime(1534): at com.android.internal.policy.impl.PhoneWindow$DecorView.draw(PhoneWindow.java:1904)
11-12 15:54:03.531: E/AndroidRuntime(1534): at android.view.ViewRoot.draw(ViewRoot.java:1527)
11-12 15:54:03.531: E/AndroidRuntime(1534): at android.view.ViewRoot.performTraversals(ViewRoot.java:1263)
11-12 15:54:03.531: E/AndroidRuntime(1534): at android.view.ViewRoot.handleMessage(ViewRoot.java:1865)
11-12 15:54:03.531: E/AndroidRuntime(1534): at android.os.Handler.dispatchMessage(Handler.java:99)
11-12 15:54:03.531: E/AndroidRuntime(1534): at android.os.Looper.loop(Looper.java:123)
11-12 15:54:03.531: E/AndroidRuntime(1534): at android.app.ActivityThread.main(ActivityThread.java:3687)
11-12 15:54:03.531: E/AndroidRuntime(1534): at java.lang.reflect.Method.invokeNative(Native Method)
11-12 15:54:03.531: E/AndroidRuntime(1534): at java.lang.reflect.Method.invoke(Method.java:507)
11-12 15:54:03.531: E/AndroidRuntime(1534): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:842)
11-12 15:54:03.531: E/AndroidRuntime(1534): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:600)
11-12 15:54:03.531: E/AndroidRuntime(1534): at dalvik.system.NativeStart.main(Native Method)