在火星团队观看此视频后: https://www.youtube.com/watch?v=kDZYIhNkQoM 我试图在“OnSuccess”
的“new”关键字之前实现“this”监听器举个例子:
public void pullEventsFromDatabase() {
mEventRef.get().addOnSuccessListener(getActivity(), new OnSuccessListener<QuerySnapshot>() {
@Override
public void onSuccess(QuerySnapshot documentSnapshots) {
if (documentSnapshots.size() <= 0) {
setNothingToShow();
Log.w(TAG, "Error getting documents. Cat might be empty");
} else {
events.clear();
for (DocumentSnapshot document : documentSnapshots) {
Event event = document.toObject(Event.class);
events.add(new Event(event.getImageUrl(), event.getTitle(), event.getSummary(), event.getembeddedIDOrPowerLinkID(), event.getLinkToEvent(), event.getLinkToFastReservation(), event.getKey(), event.getDateOfPublish()));
}
if (events != null) {
Collections.sort(events);
initEventsRecyclerView();
}
}
}
});
}
而不是“this”我使用的是“getActivity”上下文,因为此函数在片段中的onCreateView上执行。
不幸的是,在尝试实现此方法时(仅使用上下文,没有它,函数可以工作,但它有一些不同的效果)片段事务中断! 尝试在片段之间导航将在开始时起作用,但是在经过相同片段2-3次之后将导致片段事务完全中断并停止响应,直到应用程序将再次调用onDestroy和onCreate。
提前致谢。