转载自:https://blog.csdn.net/u012939909/article/details/53355836
问题:
关于Fragment not attached to Activity 异常,是因为Fragment的还没有Attach到Activity时,调用了如getResource()、getString()等,需要上下文Content的函数。
往往这种问题发生在线程中,尤其是网络请求线程中。因为父Activity可能无意中destory掉,而线程还在执行,此时在线程中的操作获取不到父Activity的上下文Content,疑似造成内存泄漏。
解决方法:
if (isAdded()) {
tvMsg.setText(getResources().getString(R.string.app_name));
}
- 1
- 2
- 3
isAdded()
方法可以判断当前的Fragment
是否已经添加到Activity
中,只有当Fragment
已经添加到Activity
中时才执行getResources()
等方法。