Fragment onAttach兼容方法

在fragment向activity传值时需要使用onAttach方法,由于onAttach(activity,Activity):已被弃用,只能用onAttach(contex,Contex):void,但是在API<23时并不会去调用此方法,即会导致程序崩溃(此为google一个bug)。

/* 
* onAttach(Context) is not called on pre API 23 versions of Android and onAttach(Activity) is deprecated 
* Use onAttachToContext instead 
*/  
   @TargetApi(23)  
   @Override  
   public void onAttach(Context context) {  
       super.onAttach(context);  
       onAttachToContext(context);  
   }  

   /* 
    * Deprecated on API 23 
    * Use onAttachToContext instead 
    */  
   @SuppressWarnings("deprecation")  
   @Override  
   public void onAttach(Activity activity) {  
       super.onAttach(activity);  
       if (Build.VERSION.SDK_INT < Build.VERSION_CODES.M) {  
           onAttachToContext(activity);  
       }  
   }  

   /* 
    * Called when the fragment attaches to the context 
    */  
   protected void onAttachToContext(Context context) {  
      //do something  
   }  

你可能感兴趣的:(Android)