小编Suy*_*ash的帖子

如何使用Firebase云消息传送设备到设备消息?

搜索文档后,我找不到任何有关如何使用FCM将设备发送到设备消息的信息,而无需使用外部服务器.

例如,如果我正在创建一个聊天应用程序,我需要向用户发送有关未读消息的推送通知,因为它们不会一直在线,我不能在后台始终连接到持久服务实时数据库,因为这太资源了.

那么当某个用户"B"向他/她发送聊天消息时,如何向用户"A"发送推送通知?我是否需要外部服务器,还是仅使用Firebase服务器?

firebase firebase-cloud-messaging

69
推荐指数
3
解决办法
7万
查看次数

Kotlin集合在Android上抛出ClassNotFoundException

在Android上运行应用程序时,使用下面的任何行都会引发ClassNotFoundException.

val list = listOf("a", "b")
val arrayList = arrayListOf("a", "b")
val map = mapOf("key" to "value")
Run Code Online (Sandbox Code Playgroud)

例外:

04-28 15:12:00.770 27326-27326/com.example.kotlin E/AndroidRuntime: FATAL EXCEPTION: main
Process: com.example.kotlin, PID: 27326
java.lang.NoClassDefFoundError: Failed resolution of: Lkotlin/collections/CollectionsKt;
    at com.example.kotlin.MainActivity.onCreate(MainActivity.kt:17)
    at android.app.Activity.performCreate(Activity.java:6237)
    at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1107)
    at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2369)
    at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2476)
    at android.app.ActivityThread.-wrap11(ActivityThread.java)
    at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1344)
    at android.os.Handler.dispatchMessage(Handler.java:102)
    at android.os.Looper.loop(Looper.java:148)
    at android.app.ActivityThread.main(ActivityThread.java:5417)
    at java.lang.reflect.Method.invoke(Native Method)
    at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:726)
    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:616)
 Caused by: java.lang.ClassNotFoundException: Didn't find class "kotlin.collections.CollectionsKt" on path: DexPathList[[zip file "/data/app/com.example.kotlin-1/base.apk"],nativeLibraryDirectories=[/data/app/com.example.kotlin-1/lib/x86, /vendor/lib, /system/lib]]
    at dalvik.system.BaseDexClassLoader.findClass(BaseDexClassLoader.java:56)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:511)
    at …
Run Code Online (Sandbox Code Playgroud)

android kotlin

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

在Java中初始化对象Thread Safe

我在我的一个应用程序中编写了类似的代码,但我不确定它是否是线程安全的.

public class MyClass {
    private MyObject myObject = new MyObject();

    public void setObject(MyObject o) {
        myObject = o;
    }

    public MyObject getObject() {
        return myObject;
    }
}
Run Code Online (Sandbox Code Playgroud)

setObject()getObject()方法将通过不同的线程调用.该getObject()方法将由持续绘制Canvas的线程调用.为了获得最佳FPS和平滑运动,我不希望该线程一直等待同步锁定.因此,除非确实有必要,否则我希望避免使用同步.那么这里真的有必要吗?或者还有其他更好的方法来解决这个问题吗?

顺便说一句,线程是否收到对象的旧副本并不重要.

java multithreading initialization object

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