小编Fab*_*abi的帖子

尝试从Google Cloud Messaging消息更改Google Maps v2 Api上的标记时出现非法状态异常

我正在编写一个Android应用程序,我在Google地图上有标记,应该更改为我通过GCM收到的位置.我有一个全局静态列表,我将标记与id和位置一起保存.当我收到消息时,我可以在GCMBaseIntentService中更改列表中对象的位置,但是当我想执行以下代码时:

    mMarker.setPosition(new LatLng(member.getLatitude(),member.getLongitude()));
Run Code Online (Sandbox Code Playgroud)

我得到以下例外:

    01-13 18:52:38.118: E/AndroidRuntime(7605): FATAL EXCEPTION: IntentService[GCMIntentService-1041237551356-1]
    01-13 18:52:38.118: E/AndroidRuntime(7605): java.lang.IllegalStateException: Not on the main thread
    01-13 18:52:38.118: E/AndroidRuntime(7605):     at maps.am.r.b(Unknown Source)
    01-13 18:52:38.118: E/AndroidRuntime(7605):     at maps.ar.d.b(Unknown Source)
    01-13 18:52:38.118: E/AndroidRuntime(7605):     at maps.y.ae.addMarker(Unknown Source)
    01-13 18:52:38.118: E/AndroidRuntime(7605):     at com.google.android.gms.maps.internal.IGoogleMapDelegate$Stub.onTransact(IGoogleMapDelegate.java:167)
    01-13 18:52:38.118: E/AndroidRuntime(7605):     at android.os.Binder.transact(Binder.java:279)
    01-13 18:52:38.118: E/AndroidRuntime(7605):     at com.google.android.gms.maps.internal.IGoogleMapDelegate$a$a.addMarker(Unknown Source)
    01-13 18:52:38.118: E/AndroidRuntime(7605):     at com.google.android.gms.maps.GoogleMap.addMarker(Unknown Source)
    01-13 18:52:38.118: E/AndroidRuntime(7605):     at com.example.MapViewActivity.showMember(MapViewActivity.java:529)
    01-13 18:52:38.118: E/AndroidRuntime(7605):     at com.example.MapViewActivity.updateMember(MapViewActivity.java:417)
    01-13 18:52:38.118: E/AndroidRuntime(7605):     at com.example.MapViewActivity.updateMembers(MapViewActivity.java:410)
    01-13 18:52:38.118: E/AndroidRuntime(7605):     at com.example.pushnotifications.GCMIntentService.onMessage(GCMIntentService.java:75)
    01-13 …
Run Code Online (Sandbox Code Playgroud)

maps android illegalstateexception google-cloud-messaging

6
推荐指数
1
解决办法
8869
查看次数

两个(在我看来)等效的SQL查询返回不同的结果

我有这个查询,它返回以下屏幕截图中的(正确)结果:

SELECT owner_id, MAX(ctime) as post_time, aid
FROM `jul_cpg15x_pictures`
GROUP BY aid
ORDER BY aid DESC
Run Code Online (Sandbox Code Playgroud)

查询结果1

但我需要以下格式的查询(因为我想在之后进行一些连接):

SELECT * FROM 
(SELECT owner_id, MAX(ctime) as post_time, aid
FROM `jul_cpg15x_pictures`
GROUP BY aid
ORDER BY aid DESC) q
Run Code Online (Sandbox Code Playgroud)

此查询返回不同的结果(某些owner_ids不同): 查询结果2

这让我疯狂了几个小时,怎么会这样?我仔细检查了表中的ctime是不同的,并且没有发生两次.但是例如对于ctime 1410003221,肯定只有一个条目(owner_id = 8的条目).

非常感谢你的任何帮助或提示.

mysql sql group-by sql-order-by

1
推荐指数
1
解决办法
63
查看次数