小编Wou*_*ter的帖子

使用Android数据绑定将List类型导入xml文件时出错

当我尝试使用Android数据绑定将List类类型导入xml文件时,我收到以下错误

Error: cannot find type element for List.
Run Code Online (Sandbox Code Playgroud)

这个错误实在令人沮丧,因为我遵循了这个文档并且看起来不正确.虽然网上有很多数据绑定教程,但我无法找到涵盖这一特定问题的教程.

我的xml文件中的数据部分如下所示:

<data>

    <import type="android.view.View" />

    <import type="java.util.List" />

    <import type="com.example.app.Book" />

    <variable
        name="books"
        type="List&lt;Book&gt;" />

</data>

List<Book> books = new ArrayList<>();
mBinding.setBooks(books);
Run Code Online (Sandbox Code Playgroud)

有没有人设法解决这个问题?我真的很感激这里的一些帮助.

xml android android-studio android-databinding

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

SimpleXML,org.simpleframework.xml.core.PersistenceException

经过很多挫折之后,我来到这里寻求帮助.我正在使用org.simpleframework.xml来解析Android中的RSS提要.我尝试解析xml文件时收到以下错误:

org.simpleframework.xml.core.PersistenceException: Element 'link' is already used with @org.simpleframework.xml.Element(data=false, name=, required=true, type=void) on field 'link'
Run Code Online (Sandbox Code Playgroud)

这是我试图解析的xml示例:

<?xml version="1.0" encoding="utf-8" ?>
<rss version="2.0" xml:base="http://www.somelink.com/" xmlns:atom="http://www.w3.org/2005/Atom">
    <channel>
        <title>My Title</title>
        <description>Latest breaking news, sport, weather and opinion, from South Africa, Africa and the world.</description>
        <link>http://www.somelink.com/</link>
        <atom:link rel="self" href="http://www.someotherlink.com" />
    </channel>
</rss>
Run Code Online (Sandbox Code Playgroud)

这些是我在代码中使用的类和注释:

@Root(name = "rss")
@Namespace(reference = "http://www.w3.org/2005/Atom", prefix = "atom")
public class NewsFeed
{
    @Version(revision = 2.0)
    private float version;

    @Attribute
    private String base;

    @Element
    private Channel channel;
}

@Root(name = "channel") …
Run Code Online (Sandbox Code Playgroud)

java xml android xml-deserialization xml-parsing

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

当应用处于非活动状态时,不会调用Firebase onMessageReceived

我在Android上使用Firebase云消息传递.

  • 当应用程序位于前台时,我可以成功接收通知和数据消息.
  • 该文档指出,如果在应用程序处于后台时收到通知消息,则Firebase将代表该应用系统托盘发送通知.这适合我.
  • 如果发送了数据消息且应用程序在后台,则会成功调用onMessageReceived方法.
  • 令人不安的情况是当我强制停止应用程序然后尝试发送通知或数据消息时.该onMessageReceived方法不会被调用在这种情况下.
  • 我已经看过很多关于SO讨论背景用例的文章,但我还没有看到为什么在完全停止应用程序时没有收到任何消息的任何解释.

我的清单中有以下内容:

<service android:name=".MyFirebaseMessagingService">
    <intent-filter>
        <action android:name="com.google.firebase.MESSAGING_EVENT" />
    </intent-filter>
</service>
<service android:name=".MyInstanceIdService">
    <intent-filter>
        <action android:name="com.google.firebase.INSTANCE_ID_EVENT" />
    </intent-filter>
</service>
Run Code Online (Sandbox Code Playgroud)

这是文档有关扩展FirebaseMessagingService的内容:

如果您想要在后台接收应用程序通知之外的任何消息处理,则需要这样做.

除了在后台接收应用程序通知之外的消息处理,它们的含义还不完全清楚.我只能假设他们正在谈论在关闭应用程序时处理消息.

任何帮助将不胜感激.

android firebase firebase-cloud-messaging

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