Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/188.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 片段中的getActivity()有时会崩溃_Android_Android Fragments - Fatal编程技术网

Android 片段中的getActivity()有时会崩溃

Android 片段中的getActivity()有时会崩溃,android,android-fragments,Android,Android Fragments,当我需要片段中的上下文时,我使用getActivity(),但有时这个代码崩溃会给我空指针,我相信这是因为android继续在片段中执行代码,但活动已经停止了 因此,要修复它,我需要始终使用: final Activity activity = getActivity(); if(activity != null) { //TODO: Use activity here } 但如果活动不为空,sux总是会验证, 有没有其他方法可以避免崩溃?你可能是对的。当AsyncTask进入onPos

当我需要片段中的上下文时,我使用getActivity(),但有时这个代码崩溃会给我空指针,我相信这是因为android继续在片段中执行代码,但活动已经停止了

因此,要修复它,我需要始终使用:

final Activity activity = getActivity();
if(activity != null) {
   //TODO: Use activity here
}
但如果活动不为空,sux总是会验证,
有没有其他方法可以避免崩溃?

你可能是对的。当AsyncTask进入
onPostExecute
时,活动可能已经结束


当片段从活动中分离时,您需要
cancel()
异步任务。这将确保不会调用
onPostExecute

承载片段的活动永不消亡,如果没有宿主活动,则无法显示片段。在将片段添加到活动之前,或者从活动中删除片段之后,您是否尝试在片段中执行某些操作?否,但我在片段中使用AsyncTasks(在onCreateView中执行),在AsyncTask的OnPostExecute中,我使用getActivity,在这种情况下,给我NullPointer,我相信因为一个新活动位于前台,Android在我的第一个活动中执行AsyncTask的onPostExecute,但已经丢失了de引用。哦,你有一个无头片段不是UI的一部分吗?谢谢!我没想过。