博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
AndroidAnnotations说明—AndroidAnnotations它是如何工作的?
阅读量:5887 次
发布时间:2019-06-19

本文共 1789 字,大约阅读时间需要 5 分钟。

        AndroidAnnotations它的工作原理很easy,它使用标准java注塑加工工具,自己主动加她一个额外的步骤生成源代码编译。
        源代码是什么?每个增强的类。比方每个用@EActivity注入的Activity,会自己主动生成一个以该类类名+下划线为类名的该Activity子类。
        比方以下这个类:
package com.some.company;@EActivitypublic class MyActivity extends Activity {  // ...}
        将会生成以下这个子类,他们在同一个包以下但处在不同的目录:
package com.some.company;public final class MyActivity_ extends MyActivity {  // ...}
        这个子类通过复写一些方法(比方onCreate())来为你的activity添加一些行为。
        上面介绍的这些就是你在AndroidManifest.xml生命Acitivty时须要为你的类名后面添加一个下划线的原因:
启动一个使用注入的Activity:
        在Android中,我们一般会通过例如以下的方式来启动一个activity:
startActivity(this, MyListActivity.class);
        然而。假设使用AndroidAnnotations的话,真正被启动的activity是MyListActivity_而不是MyListActivity:
startActivity(this, MyListActivity_.class);
 Intent Builder(AndroidAnnotations 2.4及以上):
        我们提供了一个静态的帮助类来启动编译生成的activity:
// Starting the activityMyListActivity_.intent(context).start();// Building an intent from the activityIntent intent = MyListActivity_.intent(context).get();// You can provide flagsMyListActivity_.intent(context).flags(FLAG_ACTIVITY_CLEAR_TOP).start();// You can even provide extras defined with @Extra in the activityMyListActivity_.intent(context).myDateExtra(someDate).start();
        在AndroidAnnotations 2.7及以上的版本号中你能够使用还有一个启动Activity的方法startActivityForResult()了 :
MyListActivity_.intent(context).startForResult();
启动一个使用注解的服务:
        在Android中。我们通常通过例如以下的方式来启动一个服务:
startService(this, MyService.class);
        然而,假设使用AndroidAnnotations的话,真正被启动的Service是MyService_而不是MyService:
startService(this, MyService_.class);
Intent Builder(AndroidAnnotations 2.7及以上版本号):
        我们提供了一个静态的帮助类来启动生产的Service:
// Starting the serviceMyService_.intent(context).start();// Building an intent from the activityIntent intent = MyService_.intent(context).build();// You can provide flagsMyService_.intent(context).flags(Intent.FLAG_GRANT_READ_URI_PERMISSION).start();

转载地址:http://alrix.baihongyu.com/

你可能感兴趣的文章
Windows Server 磁盘空间不足怎么办
查看>>
PMP考前复习题 系列一
查看>>
Oracle 数据完整性(学习笔记)
查看>>
我的友情链接
查看>>
Got a packet bigger than ‘max_allowed_packet’ bytes的解决方法
查看>>
oracle数据库版本检查解决方法
查看>>
Data Guard 和DGMGRL
查看>>
Memcached 原理和使用
查看>>
Oracle中NLS_DATE_FORMAT永久生效的设置方法
查看>>
高线教材管理系统
查看>>
passive-interface
查看>>
Linq to Xml读取复杂xml(带命名空间)
查看>>
我的友情链接
查看>>
How to Be Good
查看>>
top命令 CPU利用率超过100%
查看>>
好代码
查看>>
acr122U爆破
查看>>
Cisco 2950 IOS升级
查看>>
BigData 大数据
查看>>
Centos下的PHP安装手册
查看>>