gpt4 book ai didi

android - 获取太多数据时如何摆脱卡住屏幕

转载 作者:行者123 更新时间:2023-11-29 14:43:09 27 4
gpt4 key购买 nike

我在 firebase 数据库中有 1700 个帖子,但是当我使用 firebase 连接时,屏幕卡住了 30 秒到 1 分钟,然后获取了数据

注意:帖子少不会卡屏

代码

void start() {
database = FirebaseDatabase.getInstance();
databaseReference = database.getReference("YO").child("Posts");
databaseReference.addChildEventListener(new ChildEventListener() {
@Override
public void onChildAdded(@NonNull DataSnapshot dataSnapshot, @Nullable String s) {
Posts.add(new PostsModel(dataSnapshot.getKey(), dataSnapshot.child("AuthorName").getValue().toString(), dataSnapshot.child("Title").getValue().toString()));
saveSystem.SaveArrayList("PostsList", Posts);
saveSystem.SaveBooleanData("FirstTime", false);
}

@Override
public void onChildChanged(@NonNull DataSnapshot dataSnapshot, @Nullable String s) {

}

@Override
public void onChildRemoved(@NonNull DataSnapshot dataSnapshot) {

}

@Override
public void onChildMoved(@NonNull DataSnapshot dataSnapshot, @Nullable String s) {

}

@Override
public void onCancelled(@NonNull DatabaseError databaseError) {

}
});
}

有没有办法摆脱它?

最佳答案

尽管使用例如 addChildEventListener() 监听事件变化是在后台线程上,但是当进程在该线程上启动。为了提高大数据的性能,将解析或文件操作移至后台线程。

要执行繁重的工作,您可以使用 AsyncTask(这对初学者和新手很有用)。我通常会发现剥离自己的新 Thread 来处理这类事情会更容易。

关于android - 获取太多数据时如何摆脱卡住屏幕,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53414519/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com