Android FireStore anyQuery.onComplete()将始终在主线程上运行吗?那';这很奇怪 class ExampleThread扩展线程{ @凌驾 公开募捐{ Log.d(标记“ExampleThread->run:currentThread=“+Thread.currentThread().getId()”); 数据库收集(“点和评级”) .orderBy(“gmq”,Query.Direction.DESCENDING) .get().addOnCompleteListener(新的OnCompleteListener()){ @凌驾 未完成的公共void(@NonNull任务){ 对于(QueryDocumentSnapshot文档:task.getResult()){ Log.d(标记“ExampleThread->run:currentThread=“+Thread.currentThread().getId()”); Log.d(标记,document.getId()+“=AccumeratedUpdatedNugget=@=>”+document.getData()); }//for循环结束 } }); } }//示例线程结束
不幸的是,行Android FireStore anyQuery.onComplete()将始终在主线程上运行吗?那';这很奇怪 class ExampleThread扩展线程{ @凌驾 公开募捐{ Log.d(标记“ExampleThread->run:currentThread=“+Thread.currentThread().getId()”); 数据库收集(“点和评级”) .orderBy(“gmq”,Query.Direction.DESCENDING) .get().addOnCompleteListener(新的OnCompleteListener()){ @凌驾 未完成的公共void(@NonNull任务){ 对于(QueryDocumentSnapshot文档:task.getResult()){ Log.d(标记“ExampleThread->run:currentThread=“+Thread.currentThread().getId()”); Log.d(标记,document.getId()+“=AccumeratedUpdatedNugget=@=>”+document.getData()); }//for循环结束 } }); } }//示例线程结束,android,multithreading,firebase,google-cloud-firestore,Android,Multithreading,Firebase,Google Cloud Firestore,不幸的是,行Log.d(标记“ExampleThread->run:currentThread=“+Thread.currentThread().getId())返回1。Firestore SDK在单独的线程中处理其所有网络和磁盘交互。但是对代码的所有回调都是在主线程上进行的,因此您可以从主线程与UI交互 class ExampleThread extends Thread { @Override public void run() {
Log.d(标记“ExampleThread->run:currentThread=“+Thread.currentThread().getId())代码>返回1。Firestore SDK在单独的线程中处理其所有网络和磁盘交互。但是对代码的所有回调都是在主线程上进行的,因此您可以从主线程与UI交互
class ExampleThread extends Thread {
@Override
public void run() {
Log.d(TAG, "ExampleThread->run: currentThread= " + Thread.currentThread().getId());
db.collection("PointsAndRating")
.orderBy("gmq", Query.Direction.DESCENDING)
.get().addOnCompleteListener(new OnCompleteListener<QuerySnapshot>() {
@Override
public void onComplete(@NonNull Task<QuerySnapshot> task) {
for (QueryDocumentSnapshot document : task.getResult()) {
Log.d(TAG, "ExampleThread->run: currentThread= " + Thread.currentThread().getId());
Log.d(TAG, document.getId() + "=accumulatedUpdatedNugget=@@ => " + document.getData());
} // end of for loop
}
});
}
} // end of ExampleThread