缩小时 OSMDroid 崩溃

2023-12-05

我在我的应用程序中添加了一个 OSMDroid 地图,它工作正常,但如果我缩小,它就会崩溃。

我在用户当前位置加载地图时添加了一个项目,并在加载地图后在 AsyncTask 中再加载 10 个项目。


更新:工作解决方案

在下面的旧代码中,我在用户位置的地图上添加了一个“基本”项目,并创建了一个ItemizedItemOverlay对于地图。然后我加载了更多 OverlayItems 并将它们添加到列表中,但它们没有出现在地图上。

现在我创建了ItemizedItemOverlayAsyncTask 完成加载所有项目后,现在项目全部可见,OnItemSingleTapUp正在按预期工作,在地图上双击也可以正常工作,并且不再发生崩溃。我仍然不知道是什么导致了崩溃,但它是这样工作的。


可能出现的问题:
OverlayItems 列表是用零个对象初始化的(显然),但在我添加一个 OverlayItem 后,它包含 1 个 OverlayItem + 11 个以上空对象(或空引用?空项目?正确的术语是什么?)EDIT:没有引起问题,仍然很奇怪。

EDIT:看来我只有在添加更多项目时才会崩溃。

这是我的完整代码和 Logcat:

mResourceProxy = new DefaultResourceProxyImpl(getApplicationContext());

mapView.setTileSource(TileSourceFactory.MAPNIK);
mapView.setBuiltInZoomControls(true);
mapView.setMultiTouchControls(true);
mapController = this.mapView.getController();
mapController.setZoom(25);
GeoPoint center = new GeoPoint(DataManager.glat, DataManager.glon);
mapController.setCenter(center);
mLocMgr = (LocationManager) getSystemService(LOCATION_SERVICE);

mLocMgr.requestLocationUpdates(LocationManager.GPS_PROVIDER, 1000, 100,
        this);

items = new ArrayList<OverlayItem>(); // items now null
items.add(new OverlayItem("Here", "SampleDescription", center));
// items now contains 1 OverlayItem and 11 null-items

this.mLocationOverlay = new ItemizedIconOverlay<OverlayItem>(items,
new ItemizedIconOverlay.OnItemGestureListener<OverlayItem>() {
            @Override
            public boolean onItemSingleTapUp(final int index,
                    final OverlayItem item) {

                Intent intent=new Intent();
                intent.putExtra("newShopName", item.mTitle);
                intent.putExtra("newShopAdd", item.mDescription);
                setResult(RESULT_OK, intent);
                finish(); 

                return true; 
            }
            @Override
            public boolean onItemLongPress(final int index,
                    final OverlayItem item) {

                toast = Toast.makeText(ShopChooseActivity.this, item.mTitle + ", " + item.mDescription, Toast.LENGTH_LONG);
                toast.show();
                return false;
            }
        }, mResourceProxy);

this.mapView.getOverlays().add(this.mLocationOverlay);
mapView.invalidate();

这里我调用AsyncTask:

loadMap = new LoadChooseShop(ShopChooseActivity.this, items).execute();

在这里我“刷新”地图:

@Override
    public void onTaskCompleted(int returncode) {
        try {
            items = loadMap.get();

            if(items != null)
            mapView.invalidate();
            else {
                Toast.makeText(getApplicationContext(), R.string.error_connectionfailure , Toast.LENGTH_LONG).show();
                setResult(RESULT_CANCELED);
                finish();
            }
        } catch (InterruptedException e) {
        } catch (ExecutionException e) {
        }
    }

以及 XML:

 <org.osmdroid.views.MapView xmlns:android="http://schemas.android.com/apk/res/android"
                        android:id="@+id/mapview"
                        android:layout_width="fill_parent"
                        android:layout_height="fill_parent"/>

大编辑:我的大部分问题现在都解决了,但它仍然崩溃。

当我双击地图时,它总是崩溃,但不仅如此。 如果我添加clickable=true到 XML,它不再崩溃,但我无法移动地图。

日志猫:

07-15 14:41:16.339: E/InputEventReceiver(17302): Exception dispatching input event.
07-15 14:41:16.339: E/MessageQueue-JNI(17302): Exception in MessageQueue callback: handleReceiveCallback
07-15 14:41:16.404: E/MessageQueue-JNI(17302): java.lang.IndexOutOfBoundsException: Invalid index 1, size is 1
07-15 14:41:16.404: E/MessageQueue-JNI(17302):  at java.util.ArrayList.throwIndexOutOfBoundsException(ArrayList.java:251)
07-15 14:41:16.404: E/MessageQueue-JNI(17302):  at java.util.ArrayList.get(ArrayList.java:304)
07-15 14:41:16.404: E/MessageQueue-JNI(17302):  at org.osmdroid.views.overlay.ItemizedOverlay.getItem(ItemizedOverlay.java:157)
07-15 14:41:16.404: E/MessageQueue-JNI(17302):  at org.osmdroid.views.overlay.ItemizedIconOverlay.activateSelectedItems(ItemizedIconOverlay.java:170)
07-15 14:41:16.404: E/MessageQueue-JNI(17302):  at org.osmdroid.views.overlay.ItemizedIconOverlay.onSingleTapUp(ItemizedIconOverlay.java:117)
07-15 14:41:16.404: E/MessageQueue-JNI(17302):  at org.osmdroid.views.overlay.OverlayManager.onSingleTapUp(OverlayManager.java:291)
07-15 14:41:16.404: E/MessageQueue-JNI(17302):  at org.osmdroid.views.MapView$MapViewGestureDetectorListener.onSingleTapUp(MapView.java:1539)
07-15 14:41:16.404: E/MessageQueue-JNI(17302):  at android.view.GestureDetector.onTouchEvent(GestureDetector.java:1344)
07-15 14:41:16.404: E/MessageQueue-JNI(17302):  at org.osmdroid.views.MapView.dispatchTouchEvent(MapView.java:904)
07-15 14:41:16.404: E/MessageQueue-JNI(17302):  at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:2416)
07-15 14:41:16.404: E/MessageQueue-JNI(17302):  at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2159)
07-15 14:41:16.404: E/MessageQueue-JNI(17302):  at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:2416)
07-15 14:41:16.404: E/MessageQueue-JNI(17302):  at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2159)
07-15 14:41:16.404: E/MessageQueue-JNI(17302):  at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:2416)
07-15 14:41:16.404: E/MessageQueue-JNI(17302):  at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2159)
07-15 14:41:16.404: E/MessageQueue-JNI(17302):  at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:2416)
07-15 14:41:16.404: E/MessageQueue-JNI(17302):  at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2159)
07-15 14:41:16.404: E/MessageQueue-JNI(17302):  at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:2416)
07-15 14:41:16.404: E/MessageQueue-JNI(17302):  at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2159)
07-15 14:41:16.404: E/MessageQueue-JNI(17302):  at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:2416)
07-15 14:41:16.404: E/MessageQueue-JNI(17302):  at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2159)
07-15 14:41:16.404: E/MessageQueue-JNI(17302):  at com.android.internal.policy.impl.PhoneWindow$DecorView.superDispatchTouchEvent(PhoneWindow.java:2115)
07-15 14:41:16.404: E/MessageQueue-JNI(17302):  at com.android.internal.policy.impl.PhoneWindow.superDispatchTouchEvent(PhoneWindow.java:1468)
07-15 14:41:16.404: E/MessageQueue-JNI(17302):  at android.app.Activity.dispatchTouchEvent(Activity.java:2487)
07-15 14:41:16.404: E/MessageQueue-JNI(17302):  at com.android.internal.policy.impl.PhoneWindow$DecorView.dispatchTouchEvent(PhoneWindow.java:2063)
07-15 14:41:16.404: E/MessageQueue-JNI(17302):  at android.view.View.dispatchPointerEvent(View.java:7520)
07-15 14:41:16.404: E/MessageQueue-JNI(17302):  at android.view.ViewRootImpl.deliverPointerEvent(ViewRootImpl.java:3376)
07-15 14:41:16.404: E/MessageQueue-JNI(17302):  at android.view.ViewRootImpl.deliverInputEvent(ViewRootImpl.java:3308)
07-15 14:41:16.404: E/MessageQueue-JNI(17302):  at android.view.ViewRootImpl.doProcessInputEvents(ViewRootImpl.java:4402)
07-15 14:41:16.404: E/MessageQueue-JNI(17302):  at android.view.ViewRootImpl.enqueueInputEvent(ViewRootImpl.java:4380)
07-15 14:41:16.404: E/MessageQueue-JNI(17302):  at android.view.ViewRootImpl$WindowInputEventReceiver.onInputEvent(ViewRootImpl.java:4484)
07-15 14:41:16.404: E/MessageQueue-JNI(17302):  at android.view.InputEventReceiver.dispatchInputEvent(InputEventReceiver.java:171)
07-15 14:41:16.404: E/MessageQueue-JNI(17302):  at android.os.MessageQueue.nativePollOnce(Native Method)
07-15 14:41:16.404: E/MessageQueue-JNI(17302):  at android.os.MessageQueue.next(MessageQueue.java:125)
07-15 14:41:16.404: E/MessageQueue-JNI(17302):  at android.os.Looper.loop(Looper.java:124)
07-15 14:41:16.404: E/MessageQueue-JNI(17302):  at android.app.ActivityThread.main(ActivityThread.java:4898)
07-15 14:41:16.404: E/MessageQueue-JNI(17302):  at java.lang.reflect.Method.invokeNative(Native Method)
07-15 14:41:16.404: E/MessageQueue-JNI(17302):  at java.lang.reflect.Method.invoke(Method.java:511)
07-15 14:41:16.404: E/MessageQueue-JNI(17302):  at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1006)
07-15 14:41:16.404: E/MessageQueue-JNI(17302):  at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:773)
07-15 14:41:16.404: E/MessageQueue-JNI(17302):  at dalvik.system.NativeStart.main(Native Method)
07-15 14:41:21.914: D/AndroidRuntime(17302): Shutting down VM
07-15 14:41:21.914: W/dalvikvm(17302): threadid=1: thread exiting with uncaught exception (group=0x417cc2a0)
07-15 14:41:21.984: E/AndroidRuntime(17302): FATAL EXCEPTION: main
07-15 14:41:21.984: E/AndroidRuntime(17302): java.lang.IndexOutOfBoundsException: Invalid index 1, size is 1
07-15 14:41:21.984: E/AndroidRuntime(17302):    at java.util.ArrayList.throwIndexOutOfBoundsException(ArrayList.java:251)
07-15 14:41:21.984: E/AndroidRuntime(17302):    at java.util.ArrayList.get(ArrayList.java:304)
07-15 14:41:21.984: E/AndroidRuntime(17302):    at org.osmdroid.views.overlay.ItemizedOverlay.getItem(ItemizedOverlay.java:157)
07-15 14:41:21.984: E/AndroidRuntime(17302):    at org.osmdroid.views.overlay.ItemizedIconOverlay.activateSelectedItems(ItemizedIconOverlay.java:170)
07-15 14:41:21.984: E/AndroidRuntime(17302):    at org.osmdroid.views.overlay.ItemizedIconOverlay.onSingleTapUp(ItemizedIconOverlay.java:117)
07-15 14:41:21.984: E/AndroidRuntime(17302):    at org.osmdroid.views.overlay.OverlayManager.onSingleTapUp(OverlayManager.java:291)
07-15 14:41:21.984: E/AndroidRuntime(17302):    at org.osmdroid.views.MapView$MapViewGestureDetectorListener.onSingleTapUp(MapView.java:1539)
07-15 14:41:21.984: E/AndroidRuntime(17302):    at android.view.GestureDetector.onTouchEvent(GestureDetector.java:1344)
07-15 14:41:21.984: E/AndroidRuntime(17302):    at org.osmdroid.views.MapView.dispatchTouchEvent(MapView.java:904)
07-15 14:41:21.984: E/AndroidRuntime(17302):    at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:2416)
07-15 14:41:21.984: E/AndroidRuntime(17302):    at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2159)
07-15 14:41:21.984: E/AndroidRuntime(17302):    at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:2416)
07-15 14:41:21.984: E/AndroidRuntime(17302):    at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2159)
07-15 14:41:21.984: E/AndroidRuntime(17302):    at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:2416)
07-15 14:41:21.984: E/AndroidRuntime(17302):    at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2159)
07-15 14:41:21.984: E/AndroidRuntime(17302):    at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:2416)
07-15 14:41:21.984: E/AndroidRuntime(17302):    at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2159)
07-15 14:41:21.984: E/AndroidRuntime(17302):    at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:2416)
07-15 14:41:21.984: E/AndroidRuntime(17302):    at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2159)
07-15 14:41:21.984: E/AndroidRuntime(17302):    at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:2416)
07-15 14:41:21.984: E/AndroidRuntime(17302):    at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2159)
07-15 14:41:21.984: E/AndroidRuntime(17302):    at com.android.internal.policy.impl.PhoneWindow$DecorView.superDispatchTouchEvent(PhoneWindow.java:2115)
07-15 14:41:21.984: E/AndroidRuntime(17302):    at com.android.internal.policy.impl.PhoneWindow.superDispatchTouchEvent(PhoneWindow.java:1468)
07-15 14:41:21.984: E/AndroidRuntime(17302):    at android.app.Activity.dispatchTouchEvent(Activity.java:2487)
07-15 14:41:21.984: E/AndroidRuntime(17302):    at com.android.internal.policy.impl.PhoneWindow$DecorView.dispatchTouchEvent(PhoneWindow.java:2063)
07-15 14:41:21.984: E/AndroidRuntime(17302):    at android.view.View.dispatchPointerEvent(View.java:7520)
07-15 14:41:21.984: E/AndroidRuntime(17302):    at android.view.ViewRootImpl.deliverPointerEvent(ViewRootImpl.java:3376)
07-15 14:41:21.984: E/AndroidRuntime(17302):    at android.view.ViewRootImpl.deliverInputEvent(ViewRootImpl.java:3308)
07-15 14:41:21.984: E/AndroidRuntime(17302):    at android.view.ViewRootImpl.doProcessInputEvents(ViewRootImpl.java:4402)
07-15 14:41:21.984: E/AndroidRuntime(17302):    at android.view.ViewRootImpl.enqueueInputEvent(ViewRootImpl.java:4380)
07-15 14:41:21.984: E/AndroidRuntime(17302):    at android.view.ViewRootImpl$WindowInputEventReceiver.onInputEvent(ViewRootImpl.java:4484)
07-15 14:41:21.984: E/AndroidRuntime(17302):    at android.view.InputEventReceiver.dispatchInputEvent(InputEventReceiver.java:171)
07-15 14:41:21.984: E/AndroidRuntime(17302):    at android.os.MessageQueue.nativePollOnce(Native Method)
07-15 14:41:21.984: E/AndroidRuntime(17302):    at android.os.MessageQueue.next(MessageQueue.java:125)
07-15 14:41:21.984: E/AndroidRuntime(17302):    at android.os.Looper.loop(Looper.java:124)
07-15 14:41:21.984: E/AndroidRuntime(17302):    at android.app.ActivityThread.main(ActivityThread.java:4898)
07-15 14:41:21.984: E/AndroidRuntime(17302):    at java.lang.reflect.Method.invokeNative(Native Method)
07-15 14:41:21.984: E/AndroidRuntime(17302):    at java.lang.reflect.Method.invoke(Method.java:511)
07-15 14:41:21.984: E/AndroidRuntime(17302):    at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1006)
07-15 14:41:21.984: E/AndroidRuntime(17302):    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:773)
07-15 14:41:21.984: E/AndroidRuntime(17302):    at dalvik.system.NativeStart.main(Native Method)

Update:如果我不添加更多项目(不调用 AsyncTask),则点击该项目可以正常工作并提供预期结果 - 但如果我添加更多项目,它会在点击时崩溃。 (点击同一物品时,其他物品甚至不可见)


在您上次的编辑中,您发布了完整的堆栈跟踪 - 谢谢,这就是我们所需要的。我会忽略“错误下载图块”,因为这不是导致应用程序崩溃的原因。崩溃发生在“IndexOutOfBoundsException”中。由于信息过多,您的问题开始失控 - 让我们简化它并隔离问题。当崩溃发生时你在做什么 - 你在问题中说,当你双击时会发生这种情况,但异常与 ItemizedIconOverlay 和 onSingleTapUp 有关。一些值得尝试的事情:

  1. 如果不使用 ItemizedIconOverlay 会崩溃吗?
  2. 如果您不向 ItemizedIconOverlay 添加任何项目,它会崩溃吗?
  3. 查看 ItemizedItemOverlay,如果将 onSingleTapUp() 中的所有代码移至 onSingleTapConfirmed() 会怎样。那确实是它所属的地方。如果您不想从源代码重建 osmdroid,那么您应该能够扩展 ItemizedIconOverlay 并覆盖这两个方法 - return falseonSingleTapUp()并将该方法中的所有旧代码放入onSingleTapConfirmed。我刚刚添加了一张票第 450 期.
  4. 你说双击放大时会崩溃,那么当你只点击一个项目时会崩溃吗?那它会崩溃吗?确保放大时没有添加新项目。

所以 ItemizedOverlay 的工作原理是调用size()然后它调用getMarker(index)对于每个项目。由于某种原因,您的 ItemizedOverlay 认为它有 2 个项目,而实际上它只有一项。也许如果你设置一些断点,特别是在addItem() or addItems() and size()。也许,连同上述答案,会提供一些线索!

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

缩小时 OSMDroid 崩溃 的相关文章

  • 如何用Android做交互动画(翻译)

    我在 Android 中有一些 png 序列 我需要将它们的 x 和 y 位置从屏幕顶部到底部的翻译动画化 当动画发生时 我需要对象来接收单击事件 我知道这在 3 0 之前的 Android 版本中效果不太好 因为display对象的位置与
  • 将用户重定向到 iTunes 应用商店或 Google Play 商店?

    我正在寻找一种简单的解决方案来发布我的应用程序的一个链接 例如在 Facebook 上 如果用户使用移动设备访问它 它应该自动重定向到正确的应用程序商店 否则 用户应该被重定向到我的网站 iOS应用程序 http itunes apple
  • 在 Android 中使用 awt

    我有一个绘制图表的 Java Swing 应用程序 它使用 Graphics2D 调用和 awt 对象 例如 Rectangle 等 在某些时候我可能想将其移植到 Android 上 我知道我无法在 Android 上使用 Graphics
  • 如何使用具有三种布局的视图翻转器?

    我目前正在使用ViewFlipper我的主要活动有两种不同的布局 我想使用第三种布局 但我只能找到showNext and showPrevious 命令 有人可以告诉我如何使用来实现第三种布局吗ViewFlipper 为您制作了一个示例
  • 与通用地图相比,MapView 的分辨率较差

    我刚刚收到 HTC Desire 进行测试 我注意到 残留在小于整个屏幕的框架中的地图视图不如通用地图应用程序那么清晰 有什么办法解决这个问题吗 您应该使用 API 级别 4 或更高级别编译应用程序 然后在 AndroidManifest
  • Android 中图像字节表示的每像素字节数

    我目前正在编写一个Android应用程序 需要在其中使用OCR 为了实现这一点 我将 Tesseract 与tesseract android tools 项目 http code google com p tesseract androi
  • 如何在 Android 中创建始终位于顶部的全屏覆盖 Activity

    我希望能够创建一个始终位于 Android 显示前面的 Activity 它不应该接收任何输入 只需将其传递到其下面的任何应用程序即可 像平视显示器之类的东西 我能够研究我需要将底层窗口类型设置为 TYPE SYSTEM ALERT 但看起
  • 使用 RoboSpice 有没有办法从异常中获取 HTTP 错误代码?

    我正在编写一个使用 RoboSpice 的应用程序 在请求侦听器 onRequestFailure SpiceException arg0 中 有没有办法确定该错误是由于发生 401 HTTP 错误而导致的 我有一个后端服务 当令牌过期时
  • Android Studio APK META-INF/BCKEY.DSA 中复制的重复文件

    我的代码构建得很好 但是当我尝试在调试中运行它时 出现以下错误 Error Execution failed for task app transformResourcesWithMergeJavaResForDebug com andro
  • 使用 START_STICKY 启动时服务进程被终止后的 onStartCommand

    我一直在阅读 Android 文档 我想知道是否有人可以阐明当以 START STICKY 启动的服务的进程被终止时服务实例会发生什么情况 我假设本地状态数据 实例变量 也丢失了 Android 在重新创建服务时是否会采取任何措施来帮助重新
  • Android - 使用 SAX 解析器解析大文件

    我正在尝试使用 SAX 解析器解析来自 webservice 的 xml 数据 当我尝试使用 URL 解析数据 大小 7 4MB 时 它工作正常 但是当我从 URL 复制 xml 数据并放置 xml 文件时 size 7 4MB 在raw文
  • MutableStateflow 值、更新、发出

    假设我有一个可变状态流 https kotlin github io kotlinx coroutines kotlinx coroutines core kotlinx coroutines flow mutable state flow
  • 旋转 Google 地图中的两层标记图标

    在我的应用程序中 我向地图添加了一定数量的标记 如下所示 private fun addMarker googleMap GoogleMap location Location val options MarkerOptions optio
  • 检测设备方向

    我需要检测 Android 设备方向变化 而无需手动处理传感器数据 同时保持活动方向坚持某个方向 onConfigurationChange不会起作用 因为会让我的活动不旋转 通过使用传感器数据来检测方向变化 我认为这是轮子的发明 因为 A
  • 用户通过 firebase 动态链接安装应用程序并在应用程序抽屉上打开应用程序后,如何获得深层链接?

    我正在使用 firebase 动态链接邀请朋友使用我的应用程序 一切都很好 单击邀请链接会将我带到 Playstore 当我安装应用程序并等待其完成时 Playstore 会向我显示 继续 按钮 当我单击此按钮时 应用程序将打开 并且我会收
  • 活动中列表视图中的粘滞行

    我的列表视图中只有一行应该是粘性的 而不是粘性标题中带有字母的部分或部分 我真的很感激任何关于列表视图在活动中粘性一行而不是片段的帮助 我该怎么做 我真的很感谢任何帮助 提前致谢 使用如下代码 class MyAsyncTask exten
  • Android:选择 EditField 上焦点上的所有文本

    我试图让 Android 在获得焦点时选择 EditText 字段中的所有文本 我在布局中使用此属性 在两个字段上 android selectAllOnFocus true 我不确定这是否相关 但为了将光标移动到第一个可编辑字段 前面 还
  • FCM 主题是否适合更多用户?

    我对使用主题消息有点困惑 我的场景是根据通知触发一些作业 请帮助我更多地了解这一点 如果我们正在处理大量用户 则可以使用 FCM 主题向用户发送通知 我们可以只使用数据消息和主题消息吗 使用主题发送的消息是否保证送达 我在 FCM 文档中看
  • 如何从另一个活动更新 Recyclerview 数据

    我有两个活动 MainActivity 和 Addlogactivity 我正在更新 Addlogactivity 中的数据 该数据应显示在 mainactivity recyclerview 中 数据未在数据库中更新 MianActivi
  • FCM(Firebase Cloud Messaging)如何发送到所有手机?

    我创建了一个小型应用程序 能够从 FCM 控制台接收推送通知 我现在想做的是向所有使用 API 安装应用程序的 Android 手机发送推送通知 这就是我完全迷失的地方 有没有办法在不收集所有注册ID的情况下将其发送到所有手机 这是否仅适用

随机推荐

  • 从 OBJ 文件导入时如何在 glTexCoordPointer 中设置/计算纹理缓冲区

    我正在 Android 中解析 OBJ 文件 我的目标是渲染和显示该对象 除了正确的纹理映射之外 一切都工作正常 将资源 图像导入 opengl 等工作正常 我不知道如何将 obj 文件中的纹理相关数据填充到纹理缓冲区对象中 在 OBJ 文
  • 如何读取无符号整型的特定位

    我有一个 uint8 t 我需要读 写特定位 我将如何去做这件事 具体来说 我的意思是 我需要写入一个值的前 7 位 然后读取另一个值的最后一位 编辑 忘记指定 我将把它们设置为大端 您正在寻找位掩码 学习如何使用 C 的按位运算符 等等都
  • 在 Windows 上规范化路径时,Java 是否需要支持 ERROR_NO_MORE_FILES?

    问题 一些用 Java 实现的守护进程在 Windows 7 上运行 将文件从一个目录复制到另一个目录 而源目录和目标目录都是 Windows Server 2016 托管的网络共享 复制是使用 Apache Commons IO 完成的
  • 对于非 ASCII 字符串,UrlHelper.IsLocalUrl 方法始终返回“false”

    我最近发现 UrlHelper IsLocalUrl方法总是返回false 如果它检测到非 ASCII 字符url范围 Example var isLocal UrlHelper IsLocalUrl false 这是一个错误 还是 设计使
  • 什么是“运行时”?

    我听说过 C Runtime Visual C 2008 Runtime NET Common Language Runtime 等 什么是 runtime 确切地 它是什么做的 它如何与我的代码交互 或者更准确地说 它是如何控制我的代码的
  • 如何在catch中打印错误

    catch let error as LocksmithError print error it would print the case of the error 但是如果我这样做 catch LocksmithError Duplica
  • 如何更改表格的字体大小

    我正在画一张桌子matplotlib axes Axes table像这样 sub axes table cellText table vals colWidths 0 15 0 25 rowLabels row labels loc ri
  • PubSub REST 订阅拉取未返回所有消息

    我们使用要拉取的 REST 服务 API来自 PubSub 订阅的消息 准备好接受服务的消息被确认 而其他消息则在稍后的执行周期中未被确认而需要接受服务 在执行周期中 我们发送一个single请求给pull服务 REST API with
  • SPARQL 过滤器语言(如果可能)在多值上下文中

    考虑以下来自 GeoNames 数据库的摘录 prefix gn
  • 适用于 iPhone 的地理空间库

    我正在考虑创建一个位置感知 iPhone 应用程序 该应用程序可以通过与兴趣点 POI 列表打包来离线工作 该应用程序将从中读取用户的当前位置CoreLocation并按照距用户当前位置的远近顺序生成 POI 列表 我需要两个基本的地理空间
  • ImageView 拒绝父级的圆角和边框

    我有一个有多个孩子的视图 我想给整个组圆角 如下所示 我试图通过给父 LinearLayout 及其 ImageView 通过背景提供圆角来做到这一点 LinearLayout 和子级
  • 在 Swift 4 中从 InputStream 中准确读取 n 个字节

    我有一个通过 TCP 向我发送消息的服务器 其中前 4 个字节确定消息其余部分的长度 所以我需要 1 将4个字节读入UInt32 有效 并将其存储到预期字节数 2 read 预期字节数字节到message 现在我的代码如下所示 privat
  • 部分细胞进料负载

    各位新年快乐 目前 我正在使用以下默认方式访问和加载 Google 表格工作表 URL metafeedUrl new URL SPREADSHEET URL SpreadsheetEntry spreadsheet service get
  • 单元测试和检查私有变量值

    我正在使用 C NUnit 和 Rhino Mocks 编写单元测试 以下是我正在测试的课程的相关部分 public class ClassToBeTested private IList insertItems new List publ
  • 放弃 C++20 中显式函数模板特化的访问检查规则

    温度规格 6通过实现添加到 C 20P0692R1 专业化访问检查 emphasis mine 温度规格 6常用的访问检查规则不适用于声明中的名称显式实例化或明确的专业化 但出现在函数体 默认参数 基本子句 成员规范 枚举器列表或静态数据成
  • 我可以手动创建核心数据实体类的实例以供临时使用吗?

    我有一个核心数据实体的自定义类 称为 朋友 当我解析 XML 文件时 我需要创建临时实例来保存临时数据 此时不使用 Core Data 所以有两个选择 A 创建一个 NSMutableDictionary 来保存临时数据 同时从 XML 解
  • “&&”在这个批处理文件中起什么作用?

    我收到了回答我一个问题的人发来的一行代码 但我很困惑 在这个批处理文件中做什么 echo off set p Quest How are you today echo Quest gt Results txt findstr r i not
  • 在 python 中绘制使用 matplotlib 分段定义的函数

    我正在尝试绘制我分段定义的函数 举个例子 以 def f x y if x in I open 0 1 if y in I open 0 1 return x y else return 0 然后我将 Z 定义如下 X np arange
  • Java 10 下的 Eclipse Window Builder 错误

    Eclipse 在 0 下运行 但该 Java 项目的 Java 合规级别为 10 因此 WindowBuilder 将无法从该项目加载类 对项目使用较低级别的 Java 或使用较新的 Java 版本运行 Eclipse 这是我安装窗口生成
  • 缩小时 OSMDroid 崩溃

    我在我的应用程序中添加了一个 OSMDroid 地图 它工作正常 但如果我缩小 它就会崩溃 我在用户当前位置加载地图时添加了一个项目 并在加载地图后在 AsyncTask 中再加载 10 个项目 更新 工作解决方案 在下面的旧代码中 我在用