背景:
android.support.v4.app.FragmentActivity.在Android v2.2上运行.目的:
问题(S):
我可以标记/折线"保存"作为软件包的一部分,只需将其储存在他们重新显示onSaveInstanceState使用适当的savedInstance.put..方法和然后"恢复"他们onCreate使用适当的savedInstanceState.get..方法.
在查看Marker的描述getID()时,当Marker.getId()方法的Google文档声明如下时,我很困惑:
从Bundle 恢复地图时,也会恢复该地图上的标记.但是,这些标记将由不同的标记对象表示.标记的id可用于在此类恢复之后检索Marker对象的新实例.
谷歌文档(上面的粗体文字)使得听起来像标记只是自动恢复而无需采取任何行动.那不是我的经历......也许我错误地解释了所陈述的内容.或者你可能必须在Bundle中明确保存地图?有人可以澄清这意味着什么吗?
假设我必须通过适当的savedInstance.put...方法明确地将标记和折线保存到包中,我应该保存整个标记还是应该保存标记ID并使用标记ID检索标记信息以重新显示标记?我找不到一种put方法可以让我保存整个标记.
我注意到,MapFragment部分谷歌地图API的Android V2它的声明如下:
从GoogleMap获取的任何对象都与视图相关联.重要的是不要在视图的生命之外保持对象(例如标记).否则会导致内存泄漏,因为视图无法释放.
这个陈述让我相信我不应该尝试保存标记本身,而是尝试保存标记id,然后根据与标记id关联的标记对象重新生成标记.同样对于PolyLines.我的假设是否正确?
另外,我应该避免将Marker作为类变量吗?我担心的是,如果Marker是一个类变量,并且Activity Map片段放在后面的堆栈上,这可能会导致内存泄漏,因为它将有效地"保持对象",如前面提到的文档中所述.这是我应该关注的吗?
问候.
在我的"原生"Android应用程序中,我正在尝试计算地图上两个位置之间的距离和/或米(如乌鸦飞行)的距离.理想情况下,会有一种方法可以将两个LatLng值(因为我可以随时使用)作为输入并返回以米和/或码为单位的距离.如上所述,我使用的是Android Maps v2 API.
我看过许多有关计算距离的帖子(20-30),但没有发现任何有助于我解决问题的帖子.这是一个原生的Android应用程序,我正在使用Maps v2 API.
不确定这是否是最佳方法,但我目前正在尝试使用该Location方法:
distanceBetween(double startLatitude, double startLongitude, double endLatitude, double endLongitude, float[] results)
Run Code Online (Sandbox Code Playgroud)
但不幸的是,应用程序每次都崩溃,因为我得到了结果的空值.我已经通过调试器验证了我传入的纬度和经度虚拟值是有效的,并且值为resultsnull(因此问题).这是LogCat:
04-04 23:48:04.770: D/onMapClick(17970): lat/lng: (32.90843038503306,-117.22537234425546)
04-04 23:48:08.710: D/dalvikvm(17970): threadid=1: still suspended after undo (sc=1 dc=1 s=Y)
04-04 23:48:08.710: D/dalvikvm(17970): GC_FOR_MALLOC freed 7010 objects / 641712 bytes in 121ms
04-04 23:48:24.980: D/AndroidRuntime(17970): Shutting down VM
04-04 23:48:24.980: W/dalvikvm(17970): threadid=1: thread exiting with uncaught exception (group=0x40020950)
04-04 23:48:25.100: E/AndroidRuntime(17970): FATAL EXCEPTION: main
04-04 23:48:25.100: E/AndroidRuntime(17970): java.lang.IllegalArgumentException: results is null …Run Code Online (Sandbox Code Playgroud) 我正在尝试在我的Android手机上构建和运行(使用eclipse)我从教程中下载的应用程序,但是我收到以下消息:
"Android库项目无法启动".从来没见过这个.
有关导致此问题的原因以及如何解决问题的任何想法?
谢谢.