AndroidAnnotations——Reinject NonConfiguration Instance重新注入NonConfiguration 实例

翻译 2013年12月04日 20:39:46

NonConfiguration Instance

Since AndroidAnnotations 2.5


When a configuration change occurs, your activities are usually destroyed and recreated. This behavior is great to reload resources, but you usually need to transfert references to extensive states (loaded bitmaps, network connections, actively running threads...) from the old to new activity instance.
当配置发生改变时,你的activity往往先销毁再重新生成。这样重新加载资源挺好的,但是你通常需要从老的activity实例转移大量状态(加载的位图,网络连接,正在运行的线程……)引用到新的activity实例中。

That's what Activity.onRetainNonConfigurationInstance()) is for (see RetainingAnObject). Using this method requires casting from Object, and can be cumbersome when you have multiple objects.
那就是 Activity.onRetainNonConfigurationInstance()的作用(查看 RetainingAnObject)。使用这个方法需要从 Object类型强制转换,而且当你有多个对象时,这种方法比较累赘。

@NonConfigurationInstance


Annotate your activity fields with @NonConfigurationInstance to retain instances that are intensive to compute, on configuration changes.
在你的activity字段上加注解就可以在配置改变时保留需要密集计算的实例。

public class MyActivity extends Activity {

  @NonConfigurationInstance
  Bitmap someBitmap;

  @NonConfigurationInstance
  @Bean
  MyBackgroundTask myBackgroundTask;

}
Caution: while you can annotate any field, you should never annotate a field that is tied to theActivity, such as a Drawable, an Adapter, a View or any other object that's associated with a Context. If you do, it will leak all the views and resources of the original activity instance. Leaking resources means that your application maintains a hold on them and they cannot be garbage-collected, so lots of memory can be lost.
注意:当你注解这些字段时,千万不要加到那些绑定到Activity的字段上,比如Drawable AdapterView 或者其他与 Context有联系的对象。

This caution doesn't apply to beans annotated with @Bean, because AndroidAnnotations automatically takes care of rebinding their context.这个警告不适用于加了 @Bean注解的beans,因为AA会自动照看好并重新绑定它们的context。

android studio 配置androidannotations注入框架,问题一二三

最近比较闲,老是感觉编码应该是项轻松的感觉,代码不应该繁复!好的代码应该是易于理解,易读的,但是鉴于在同一个团队中各个人的水平不一样,然后代码风格也不一样,导致每次改代码修BUG的时候就莫名的烦躁,然...
  • diguoweiwu
  • diguoweiwu
  • 2016年03月09日 18:22
  • 387

【FastDev4Android框架开发】AndroidAnnnotations注入框架的工作原理(八)

(一):基本介绍(Overview)         AndroidAnnotations使用很简单的方式进行工作,它会使用Java标准的APT(Annotation Processing Tool...
  • jiangqq781931404
  • jiangqq781931404
  • 2015年10月28日 16:59
  • 2428

【FastDev4Android框架开发】RecyclerView完全解析之结合AA(Android Annotations)注入框架实例(三十)

(一).前言:            话说RecyclerView已经面市很久,也在很多应用中得到广泛的使用,在整个开发者圈子里面也拥有很不错的口碑,那说明RecyclerView拥有比ListVie...
  • jiangqq781931404
  • jiangqq781931404
  • 2015年11月21日 20:49
  • 4930

Android之注解框架Annotations从配置到简单一个demo

Android Annotations配置1.首先,一个框架需要有它的依赖包,Annotations框架需要使用两个jar包,我已经上传在了我的资源上, Annotations框架下载2.在新建的普...
  • song_shui_lin
  • song_shui_lin
  • 2016年11月09日 14:21
  • 1192

Android注解框架AndroidAnnotations学习笔记

之前也了解过注解框架及AndroidAnnotations框架,但是没有深入地学习,也没有应用到自己的项目中去。这几天看了一下相关的学习视屏,感觉这个框架确实好用,所以决定认真学习下,在接下来的项目中...
  • true100
  • true100
  • 2015年08月10日 14:44
  • 1804

Android注解框架Annotations从配置到应用

最近在看一个新的基于注解开发的项目,了解到Android中同样存在一些注解框架,能够大大提高我们的编码规范和效率,减少代码量。本文主要分为两部分,针对较热门的注解框架Android Annotatio...
  • IT_ZJYANG
  • IT_ZJYANG
  • 2016年06月29日 00:30
  • 2753

AndroidAnnotations 根据布局自动生成@ViewById

今天逛StackOver的时候,有人问有没有根据XML生成findViewById代码的。顺手点看看了一下,发现竟然也可以生成Android Annotations 的注解。网址:http://and...
  • soslinken
  • soslinken
  • 2015年06月29日 09:48
  • 715

注入 -- AndroidAnnotations学习笔记二

使用@ViewById注入View使用@XXXRes注入资源使用@SystemService注入系统资源@HtmlRes相当于Html.fromHtml(string),使用@FromHtml对Tex...
  • u013449006
  • u013449006
  • 2014年01月14日 09:03
  • 815

androidannotations编译错误

终于找到解决办法了,谢谢那个大神,因为那个兼容问题搞死了,可被这问题浪费了好多时间。 所有的Fragment我全部放到fragment文件夹中一个一个引用的有时候好有时候坏,总提示编译错误, 直接im...
  • liufang1991
  • liufang1991
  • 2015年08月09日 18:40
  • 291

android studio配置androidannotations框架

最近转用as作为开发安卓 的IDE,因此记录下这个过程,as配置androidannotations框架没有eclipse那么麻烦,总共就需要配置两个文件,不用手动下载任何第三方库文件,包括andro...
  • shenshucong520
  • shenshucong520
  • 2016年03月17日 09:57
  • 484
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:AndroidAnnotations——Reinject NonConfiguration Instance重新注入NonConfiguration 实例
举报原因:
原因补充:

(最多只允许输入30个字)