暂停和恢复片段后的空侦听器
null listener after pause and resume fragment
我正在编写一个通信应用程序。我有一个问题,我在 activity1 中有 2 activity(activity1 和 activity2)我有一个 ViewPager
,其中的第一个片段是 FriendsFragment
显示好友列表。在 FriendsFragment
中,我正在使用 class 来聆听朋友的变化并为此使用一个监听器。当 activity2 从 activity1 开始然后关闭。 FriendsFragment
.
中的侦听器将为空
片段代码:
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
.
.
.
FriendListController.with(getActivity()).load(new FriendListController.Callback() {
@Override
public void onSuccess(List<Users> friends) {
users = friends;
getActivity().runOnUiThread(new Runnable() {
@Override
public void run() {
friendsAdapter.notifyDataSetChanged();
livFriends.requestLayout();
if (users.size() > 0) {
lblHeader.setText(users.get(livFriends.getFirstVisiblePosition())
.getNickname().toUpperCase().substring(0, 1));
}
}
});
}
@Override
public void onError(String error) {
}
});
FriendListController
代码:
public interface Callback {
void onSuccess(List<Users> friends);
void onError(String error);
}
public static FriendListController with(Activity _activity) {
return new FriendListController(_activity);
}
public void loadDatabase(Callback callback) {
callbackObject = callback;
Thread thread1 = new Thread(new Runnable() {
@Override
public void run() {
Repository repository = new Repository();
friends = repository.UsersRepository.getFriends();
callbackObject.onSuccess(friends);
}
});
thread1.start();
}
行 callbackObject.onSuccess(friends);
我得到了 NullPointerException
。
我该如何解决?
您必须在 onPause() 中销毁您的侦听器并在 activity
的 onCreate() 中重新创建它
我正在编写一个通信应用程序。我有一个问题,我在 activity1 中有 2 activity(activity1 和 activity2)我有一个 ViewPager
,其中的第一个片段是 FriendsFragment
显示好友列表。在 FriendsFragment
中,我正在使用 class 来聆听朋友的变化并为此使用一个监听器。当 activity2 从 activity1 开始然后关闭。 FriendsFragment
.
片段代码:
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
.
.
.
FriendListController.with(getActivity()).load(new FriendListController.Callback() {
@Override
public void onSuccess(List<Users> friends) {
users = friends;
getActivity().runOnUiThread(new Runnable() {
@Override
public void run() {
friendsAdapter.notifyDataSetChanged();
livFriends.requestLayout();
if (users.size() > 0) {
lblHeader.setText(users.get(livFriends.getFirstVisiblePosition())
.getNickname().toUpperCase().substring(0, 1));
}
}
});
}
@Override
public void onError(String error) {
}
});
FriendListController
代码:
public interface Callback {
void onSuccess(List<Users> friends);
void onError(String error);
}
public static FriendListController with(Activity _activity) {
return new FriendListController(_activity);
}
public void loadDatabase(Callback callback) {
callbackObject = callback;
Thread thread1 = new Thread(new Runnable() {
@Override
public void run() {
Repository repository = new Repository();
friends = repository.UsersRepository.getFriends();
callbackObject.onSuccess(friends);
}
});
thread1.start();
}
行 callbackObject.onSuccess(friends);
我得到了 NullPointerException
。
我该如何解决?
您必须在 onPause() 中销毁您的侦听器并在 activity
的 onCreate() 中重新创建它