作家
登录

谷歌官方Android应用架构库——LiveData

作者: 来源: 2017-07-19 09:07:56 阅读 我要评论

update UI 
  •                 }); 
  •             } 
  •         }); 
  •     } 
  •  
  • 请留意,addObserver() 办法将 LifecycleOwner 作为第一个参数传递。如许做表示该不雅察者应当绑定到 Lifecycle,意思是:

    • 如不雅 Lifecycle 不处于晃荡状况(STARTED 或 RESUMED),即使该值产生变更也不会调用不雅察者。
    • 如不雅 Lifecycle 被烧毁,那么主动移除不雅察者。

    LiveData 是生命周期感知的事实给我们供给了一个新的可能:可以在多个 activity,fragment 等之间共享它。为了保持实例简单,可以将其作为单例,如下所示:

    1. public class LocationLiveData extends LiveData<Location> { 
    2.     private static LocationLiveData sInstance; 
    3.     private LocationManager locationManager; 
    4.  
    5.     @MainThread 
    6.     public static LocationLiveData get(Context context) { 
    7.         if (sInstance == null) { 
    8.             sInstance = new LocationLiveData(context.getApplicationContext()); 
    9.         } 
    10.         return sInstance; 
    11.     } 
    12.  
    13.     private SimpleLocationListener listener = new SimpleLocationListener() { 
    14.         @Override 
    15.         public void onLocationChanged(Location location) { 
    16.             setValue(location); 
    17.         } 
    18.     }; 
    19.  
    20.     private LocationLiveData(Context context) { 
    21.         locationManager = (LocationManager) context.getSystemService( 
    22.                 Context.LOCATION_SERVICE); 
    23.     } 
    24.  
    25.     @Override 
    26.     protected void onActive() { 
    27.         locationManager.requestLocationUpdates(LocationManager.GPS_PROVIDER, 0, 0, listener); 
    28.     } 
    29.  
    30.     @Override 
    31.     protected void onInactive() { 
    32.         locationManager.removeUpdates(listener); 
    33.     } 
    34.  

    如今 fragment 可以像下面如许应用它:

    1. public class MyFragment extends LifecycleFragment { 
    2.     public void onActivityCreated (Bundle savedInstanceState) { 
    3.         Util.checkUserStatus(result -> { 

        推荐阅读

        Windows安全协议现 LDAP & RDP 中继漏洞

      这些马脚让进击者可破解口令获取Windows凭证。Preempt合营开创人兼CEO阿基特&middot;桑切蒂称:&ldquo;威逼态势持续成长,凸显出现有安然协定中存在的马脚,这2个马脚也没什么不合。NTLM让公司企业和>>>详细阅读


      本文标题:谷歌官方Android应用架构库——LiveData

      地址:http://www.17bianji.com/lsqh/36284.html

    关键词: 探索发现

    乐购科技部分新闻及文章转载自互联网,供读者交流和学习,若有涉及作者版权等问题请及时与我们联系,以便更正、删除或按规定办理。感谢所有提供资讯的网站,欢迎各类媒体与乐购科技进行文章共享合作。

    网友点评
    自媒体专栏

    评论

    热度

    精彩导读
    栏目ID=71的表不存在(操作类型=0)