在Fragment里面调用getActivity()报null

  看友盟的错误日志发现又出现了NullPointerException,然后去看代码,发现只有是上下文有空的可能,但是因为以前已经发生过这种情况所以上下文我都是在创建Fragment对象的时候从Activity里面传过来的,而且我测试了多次,没有问题,然后在网上找资料发现很多getActivity()为空的情况,发现我忽略了一个问题就是:如果app长时间在后台运行,再次进入app的时候可能会出现crash,Activity可能被系统回收然后重建,但是Fragment不会随着Activity的回收而被回收,创建的Fragment会被保存到Bundle里面,从而导致Fragment丢失对于的Activity.

为了解决这个问题我想到一个解决办法就是当Activity销毁的时候绑定的Fragmetn同时销毁,在Activity里面重写onSaveInstanceState方法,并注释掉super.onSaveInstanceState(outState),让Activity不保存Fragment的状态.

时间: 2024-10-27 07:09:32

在Fragment里面调用getActivity()报null的相关文章

Android Fragment中调用getActivity为null的问题

在使用fragment的时候经常会遇到getActivity()为null的情况.比如我在一个异步网路请求的回调中调用了getActivity()就会出现空指针问题.之前解决这个问题,通常都是直接加空指针判断来规避,但是这并没有真正解决问题. 很多人都曾被这个问题所困扰,如果app长时间在后台运行,再次进入app的时候可能会出现crash,而且fragment会有重叠现象.如果系统内存不足.切换横竖屏.app长时间在后台运行,Activity都可能会被系统回收然后重建,但Fragment并不会随

Android 在 Fragment 中使用 getActivity() NullPointException 的思考和解决办法

问题: 使用 AS 在 Fragment 中调用 getActivity() 方法的时候会出现可能为空指针的提醒 使用 monkey 多次十万次测试,会出现 getActivity() NullPointException 的情况 思考 为什么会出现这种情况,按说当前 Activity 存在,在 Fragment 中使用 getActivity() 是可以拿到的,不应该为空的 源码 fragment 的生命周期 以下源码基于 API 26 getActivity 可能为 Null, 跟进源码,可

Android 那些年,处理getActivity()为null的日子

在日常开发中的时候,我们经常会使用ViewPager+Fragment进行视图滑动,在某些部分逻辑也许我们需要利用上下文Context(例如基本的Toast),但是由于Fragment只是衣服在Activity容器的一个试图,如果需要拿到当前的Activity的上下文Context就必须通过getActivity()获取. 然而,不知道各位程序猿有没有遇过出现getActivity()出现null的时候导致程序报出空指针异常.其实原因可以归结于因为我们在(一)切换fragment的时候,会频繁被

Robotium中调用getActivity()方法导致程序挂起的研究浅析

1. 问题背景描述 在工作中需要在没有项目源码的情况下直接使用robotium测试目标android平台launcher,平台的版本基于当前最新的android 4.4.2.之前在验证可行性的时候使用本人同样使用android4.4.2的测试手机htc incredable s针对一个只有apk的notepad应用做过同样的验证,在测试手机上运行完全没有问题.该测试代码如下: package com.example.android.notepad.tryout; import com.robot

关于ProjectServer调用PSI 报Error GeneralReadOnlyColumn (20005) - column TS_ACT_FINISH_DATE错的解决方案

TimesheetDataSet Table Actuals Row: TS_LINE_UID='f4b970f8-fb03-44d1-9997-cd31da42cb09' TS_ACT_START_DATE='07/29/2014 00:00:00' Error GeneralReadOnlyColumn (20005) - column TS_ACT_FINISH_DATE 常规 Queue: GeneralQueueJobFailed (26000) - TimesheetUpdate.U

Spring MVC普通类或工具类中调用service报空空指针的解决办法(调用service报java.lang.NullPointerException)

当我们在非Controller类中应用service的方法是会报空指针,如图: 这是因为Spring MVC普通类或工具类中调用service报空null的解决办法(调用service报java.lang.NullPointerException) 按上述步骤解决完自己的工具类后,你会发现项目运行后仍然报空指针此时你需要在applicationContext.xml 配置文件中添加一行配置文件 如图: 对自己工具类所在的包进行注解扫描,使Spring能够识别自己上面所配置的注解 原文地址:htt

springboot的依赖注入报null的问题

最近使用springboot开发项目,使用到了依赖注入,频繁的碰到注入的对象报空指针,错误如下 java.lang.NullPointerException: null at com.mayihc.audit.controller.MaterialNkDetailController.download(MaterialNkDetailController.java:72) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)

android开发 Fragment嵌套调用常见错误

在activity中有时需要嵌套调用fragment,但嵌套调用往往带来视图的显示与预期的不一样或是fragment的切换有问题.在使用时要注意几点: 1.fragment中嵌套fragment,子fragment视图无法显示: 如下: 父fragment的.xml文件: <pre name="code" class="html"><LinearLayout xmlns:android="http://schemas.android.co

多线程“尚未调用coinitialize” 报错

关于多线程中创建使用TADOConnect.TADODataSet等Com组件时,必须先初始化Com 在多线程启用执行前 CoInitialize(nil); 在多线程启用执行后 CoUninitialize; 多线程"尚未调用coinitialize" 报错