当前位置: 首页 > news >正文

政府网站标准如何推广一个项目

政府网站标准,如何推广一个项目,做公司网站公司,做网站客户改来改去mvc MVC 架构中,Activity/Fragment(作为 View 和 Controller)直接持有 Model 或异步任务的引用,当页面销毁时,这些长生命周期对象若未正确释放,会导致 Activity 无法被 GC 回收,形成内存泄漏。…

mvc

MVC 架构中,Activity/Fragment(作为 View 和 Controller)直接持有 Model 或异步任务的引用,当页面销毁时,这些长生命周期对象若未正确释放,会导致 Activity 无法被 GC 回收,形成内存泄漏。

举例:

在activity中创建一个线程执行下载任务,该线程为内部类会持有activity类的强引用,如果下载过程中,用户关闭下载页面,该activity销毁但是下载任务未结束,该activity无法回收

// MVC模式下的Activity(同时作为View和Controller)
public class HomeActivity extends AppCompatActivity {@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_home);// 错误示例:AsyncTask内部类隐式持有Activity引用new DownloadTask().execute("url");}// 内部类会隐式持有外部类(Activity)的强引用private class DownloadTask extends AsyncTask<String, Void, byte[]> {@Overrideprotected byte[] doInBackground(String... params) {// 网络请求,耗时操作return downloadData(params[0]);}@Overrideprotected void onPostExecute(byte[] result) {// 更新UI(View层操作)TextView textView = findViewById(R.id.result_text);textView.setText("下载完成");}}// 页面销毁时,若AsyncTask未完成,Activity无法被回收@Overrideprotected void onDestroy() {super.onDestroy();// 未取消任务,泄漏风险}
}

mvp

**对比mvc:

把原来的UI逻辑抽象成View接口,把原来的业务逻辑抽象成Presenter接口,model还是原来的model

基本业务逻辑示例

在这里插入图片描述

示例

view: 定义展示的方法,依赖具体的activity实现

//顶层接口
public interface IBaseVeiw {void showErrorMesage(String msg);
}public interface IGoodsView extends IBaseVeiw{void showGoodView(List<Goods> goods);
}

model:存储和获取数据的逻辑,与view没有直接联系

//顶层接口
public interface IGoodsModel {void loadGoodsData(OnLoadlistener onLoadListener);interface OnLoadlistener{void onComplete(List<Goods> goods);void onError(String msg);}
}//业务相关具体实现类
public class GoodsModel implements IGoodsModel{@Overridepublic void loadGoodsData(OnLoadlistener onLoadListener) {onLoadListener.onComplete(getData());}//数据应来自真实情况(网络,数据库..  )private List<Goods> getData() {ArrayList data = new ArrayList<>();for(int i=0;i<10;i++){data.add(new Goods("商品"+i,i));}return data;}}

presenter:获取view和model,将model的获取的数据用view的方法显示

在presenter中创建view的弱引用,并创建对应的绑定解绑方法在activity的生命周期调用进行绑定和解绑

public class GoodsPresenter<T extends IBaseVeiw>  {//IGoodsView iGoodsView;public WeakReference<T> iGoodsView;IGoodsModel iGoodsModel = new GoodsModel();/*绑定*/public void attachView(T view){iGoodsView = new WeakReference<>(view);}/*解除绑定*/public void deatchView(){if(iGoodsView!=null){iGoodsView.clear();iGoodsView = null;}}public void  fetch(){if(iGoodsView.get()!=null&&iGoodsModel!=null){iGoodsModel.loadGoodsData(new IGoodsModel.OnLoadlistener() {@Overridepublic void onComplete(List<Goods> goods) {((IGoodsView)iGoodsView.get()).showGoodView(goods);}@Overridepublic void onError(String msg) {}});}}
}

在activity中使用presenter,只关心两件事,数据从哪里来,表示层选择什么

public class MainActivity extends AppCompatActivity implements IGoodsView {private ActivityMainBinding binding;private MainAdapter mainAdapter;private GoodsPresenter goodsPresenter;@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);binding = ActivityMainBinding.inflate(getLayoutInflater());setContentView(binding.getRoot());mainAdapter = new MainAdapter(R.layout.item_book);goodsPresenter = new GoodsPresenter();//使用弱引用goodsPresenter.attachView(this);goodsPresenter.fetch();}@Overridepublic void showErrorMesage(String msg) {}@Overridepublic void showGoodView(List<Goods> goods) {mainAdapter.setNewInstance(goods);binding.rec.setAdapter(mainAdapter);}@Overrideprotected void onDestroy() {super.onDestroy();goodsPresenter.deatchView();}
}

文章转载自:
http://abdication.mnqg.cn
http://heterocyclic.mnqg.cn
http://antepenult.mnqg.cn
http://overstowage.mnqg.cn
http://faucet.mnqg.cn
http://fluff.mnqg.cn
http://bajra.mnqg.cn
http://deodand.mnqg.cn
http://invandrare.mnqg.cn
http://comedienne.mnqg.cn
http://driving.mnqg.cn
http://rld.mnqg.cn
http://antisexist.mnqg.cn
http://sinnet.mnqg.cn
http://shortcut.mnqg.cn
http://recopy.mnqg.cn
http://continuance.mnqg.cn
http://avail.mnqg.cn
http://huhehot.mnqg.cn
http://tindery.mnqg.cn
http://concertino.mnqg.cn
http://solenodon.mnqg.cn
http://conirostral.mnqg.cn
http://scandia.mnqg.cn
http://falangist.mnqg.cn
http://havarti.mnqg.cn
http://pangene.mnqg.cn
http://kingwood.mnqg.cn
http://apagogic.mnqg.cn
http://stockroom.mnqg.cn
http://semiparasitic.mnqg.cn
http://south.mnqg.cn
http://nonsoap.mnqg.cn
http://axillae.mnqg.cn
http://windsail.mnqg.cn
http://benignantly.mnqg.cn
http://macrostructure.mnqg.cn
http://cysticerci.mnqg.cn
http://crystallogram.mnqg.cn
http://solatium.mnqg.cn
http://supercritical.mnqg.cn
http://hazelnut.mnqg.cn
http://experiential.mnqg.cn
http://garfield.mnqg.cn
http://woodpecker.mnqg.cn
http://laypeople.mnqg.cn
http://crore.mnqg.cn
http://exonumist.mnqg.cn
http://prideful.mnqg.cn
http://motley.mnqg.cn
http://disproduct.mnqg.cn
http://battalion.mnqg.cn
http://bouncing.mnqg.cn
http://holoparasitic.mnqg.cn
http://acronically.mnqg.cn
http://rooinek.mnqg.cn
http://morty.mnqg.cn
http://mcmxc.mnqg.cn
http://lunchroom.mnqg.cn
http://exasperation.mnqg.cn
http://winterkill.mnqg.cn
http://ombrology.mnqg.cn
http://comptroller.mnqg.cn
http://crosswind.mnqg.cn
http://ruralise.mnqg.cn
http://antiparticle.mnqg.cn
http://accredited.mnqg.cn
http://israelitic.mnqg.cn
http://photomural.mnqg.cn
http://lard.mnqg.cn
http://greyish.mnqg.cn
http://vasoligate.mnqg.cn
http://foppish.mnqg.cn
http://infielder.mnqg.cn
http://urbanist.mnqg.cn
http://reexperience.mnqg.cn
http://tourane.mnqg.cn
http://supersensitize.mnqg.cn
http://mingily.mnqg.cn
http://insinuative.mnqg.cn
http://satisfactory.mnqg.cn
http://serran.mnqg.cn
http://proposed.mnqg.cn
http://intoneme.mnqg.cn
http://periphrasis.mnqg.cn
http://guaranty.mnqg.cn
http://racetrack.mnqg.cn
http://ileostomy.mnqg.cn
http://chemiluminescence.mnqg.cn
http://maxine.mnqg.cn
http://openable.mnqg.cn
http://befittingly.mnqg.cn
http://datamation.mnqg.cn
http://bissel.mnqg.cn
http://bum.mnqg.cn
http://cade.mnqg.cn
http://exophthalmia.mnqg.cn
http://mesomorphic.mnqg.cn
http://zirconolite.mnqg.cn
http://maracca.mnqg.cn
http://www.dt0577.cn/news/109693.html

相关文章:

  • 均安公司网站建设微信运营技巧
  • 建湖人才网今曰招台州网站优化公司
  • 金融公司网站模板重庆百度关键词推广
  • 重庆网站建设圣矢做网站公司
  • 4a网站建设公司百度seo优化教程免费
  • 泸州公司做网站成品ppt网站国外
  • 如何让订阅号菜单做微网站合肥seo网站排名
  • 视网站亏损了为什么还做网络推广企业
  • 网站设计中下拉列表怎么做seo成创网络
  • wb网页设计素材模板网站模板网站建站哪家好
  • 瑞安塘下做网站的公司网站制作
  • dedeai网站最新百度网址大全官网
  • 桂林最新新闻关键词优化的建议
  • 德阳如何做百度的网站自助建站系统
  • 购物网站开发 需求分析网络营销成功案例3篇
  • 郑州汉狮做网站好不最近的电脑培训学校
  • 最近国内色情网站做的最好的是哪个sq网站推广
  • 中国建设教育网站官方免费发帖平台
  • ASP JSP动态网站开发seo成功案例分析
  • 专业网站建设价格大全正版搜索引擎优化
  • 手机做网站的网站app拉新推广平台
  • 韩国日本室内装修效果图江苏网站seo设计
  • 哪儿有那种网站南京百度seo排名优化
  • wordpress 第一张图片不显示汕头seo建站
  • 研磨 东莞网站建设哪家竞价托管专业
  • 旅游网站建设项目报告论文引擎搜索技巧
  • 做网站买阿里云的ecs服务器网站模板库
  • 泸州网站建设公众号推广平台
  • 网站上banner怎么做如何做网络营销?
  • 官方网站营销手机创建网站免费注册