startActivity
经常会报错
06-10 19:58:21.804: E/AndroidRuntime(21730): java.lang.IllegalStateException: Fragment HomeFragment{41b8dc48} not attached to Activity 06-10 19:58:21.804: E/AndroidRuntime(21730): at android.support.v4.app.Fragment.startActivity(Fragment.java:894)
具体使用场景
@Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); AppHttp.postXXX(); // http发送了一个请求 }在http的回调方法中大概执行如下(此方法定义在Fragment中)
public boolean handleMessage(final Message msg) { <span style="white-space:pre"> </span>Intent i = new Intent(getActivity(), MainActivity.class); <pre name="code" class="java"><span style="white-space:pre"> </span>startActivity(i);}
现在直说一下解决方案
方案一:
getActivity().startActivity(i)getActivity()获取到的是Fragment的宿主 FragmentActivity
##################################################
方案二:别再onCreate的时候发送该请求。
在onActivityCreate完成以后发送http请求。当http请求回调的时候startActivity就不会报以上错了
——————————————————————————————————————————————————————————————
贴一下Fragment的生命周期吧。。。。。。。。。。。。。