使用集成式Activity快速开发
来源:互联网 发布:mac os x 重装 超慢 编辑:程序博客网 时间:2024/06/14 09:57
Activity在项目中扮演着很重要的角色。经常代表着模块的中心设置是模块本身,所以如果有一些功能集成到Activity中,也许能增加我们的开发效率。这里我介绍一下我平时也在使用的Activity封装:FastActivity
功能1:视图注解绑定
这个功能类似butterknife。绑定属性和方法都使用注解@Bind
@Bind(R.id.avatar)ImageView mAvatar;@Bind(R.id.name)TextView mName;@Bind(R.id.age)TextView mAge;@Bind(R.id.signature)TextView mSignature;@Bind(R.id.settings)public void openSettings(View v){ startActivity(new Intent(this,SecondActivity.class));}@Bind(R.id.avatar)public void changeAvatar(View v){ FastDialog.showListDialog(new String[]{"相机","相册"}).show(getSupportFragmentManager(), new DialogInterface.OnClickListener() { @Override public void onClick(DialogInterface dialog, int which){ //使用FastActivity集成的"打开相机"和"相册"会请求(读写存储/照相机)权限 if(which==0) openCamera(mPhotoResultListener); else openAlbum(mPhotoResultListener); } });}
功能2:全局事件注册
如果想在这个界面上开启一个内部的广播监听,来等待某事件的触发,那么只需要使用注解@Event,然后写出执行方法即可(方法参数必须是事件类)
/** * 退出登录事件 * @param eOut 退出事件类 */@Eventpublic void logout(EventLogout eOut){ mAvatar.setImageDrawable(null); mName.setText("未登录"); mAge.setText(null); mSignature.setText(null);}
功能3:Android权限6.0权限请求
使用方法requestPermission(String(请求的权限),Runnable(权限成功请求后行为),Runnable(权限请求失败后行为))
requestPermission(Manifest.permission.WRITE_EXTERNAL_STORAGE, new Runnable() { @Override public void run() { File f = new File(getExternalCacheDir().getAbsolutePath() + File.separator + "avatar.png"); ImageUtil.saveViewToFile(mAvatar, f); //工具类,保存某视图到文件中 }}, new Runnable() { @Override public void run() { N.showShort(MainActivity.this,"请给于读写存储权限"); //权限申请失败后弹出提示 }});
功能4:开启相机或相册请求相片
FastActivity已内部集成开启相机和相册请求,并且返回相片的路径。
PhotoResultListener mPhotoResultListener=new PhotoResultListener(){ @Override public void onPhotoResult(String path){ //相片回调,设置到头像中 mAvatar.setImageBitmap(BitmapFactory.decodeFile(path)); }};@Bind(R.id.avatar)public void changeAvatar(View v){ FastDialog.showListDialog(new String[]{"相机","相册"}).show(getSupportFragmentManager(), new DialogInterface.OnClickListener() { @Override public void onClick(DialogInterface dialog, int which){ //使用FastActivity集成的"打开相机"和"相册"会请求(读写存储/照相机)权限 if(which==0) openCamera(mPhotoResultListener); else openAlbum(mPhotoResultListener); } });}
功能5:内部线程池和任务链
FastActivity内部会有一个小型的线程池,在Activity被关闭的时候会自动关闭所有任务。适合处理一些在关闭Activity之后就不需要或者不关心的一些任务
使用new TaskChain(任务类型,任务).next(任务类型,任务).next...来构成一条顺序的任务链
//执行 提示-->计算缓存占用-->显示缓存占用startTasks(new TaskChain(TaskChain.TYPE_THREAD_ON_MAIN, new Runnable() { @Override public void run() { mCacheSize.setText("计算中..."); }}).next(TaskChain.TYPE_THREAD_ON_WORK, new Runnable() { @Override public void run(){ try { Thread.sleep(3000); //休眠一段时间,以看出区别 } catch (InterruptedException e) { e.printStackTrace(); } mSize= SaveUtil.cacheSize(SecondActivity.this); }}).next(TaskChain.TYPE_THREAD_ON_MAIN, new Runnable() { @Override public void run() { mCacheSize.setText(Formatter.formatFileSize(SecondActivity.this,mSize)); }}));
效果图
3 0
- 使用集成式Activity快速开发
- SSH+activity工作流集成开发
- Eclipse中集成Ant实现快速开发
- Eclipse中集成Ant实现快速开发
- Eclipse中集成Ant实现快速开发
- Eclipse中集成Ant实现快速开发
- Eclipse中集成Ant实现快速开发
- vs2010集成开发环境快速教程
- iOS支付宝快速集成开发
- Android 快速开发框架 集成框架
- Android 快速开发框架--2016集成优化。
- phpstudy+yii2集成环境快速开发
- Android项目快速开发集成框架
- ijkPlayer播放器快速集成使用
- 在Activity中使用Fragment需要先集成FragmentActivity
- 支付宝集成文档-傻瓜式快速集成
- 用VC6.0集成环境快速开发VxD(转载)
- iOS开发-ios7下拉刷新,上提加载快速集成
- python使用rabbitmq实例四,路由键
- C++11中的变参模板的使用
- Java GC及堆内存
- stl容器算法迭代器三大概念入门
- 关于eclipse标题栏乱码
- 使用集成式Activity快速开发
- python使用rabbitmq实例五,路由键模糊匹配
- linux设备驱动归纳总结
- flex弹性盒子布局
- python使用rabbitmq实例六,远程结果返回
- bzoj2738 矩阵乘法
- ElasticSearch增加Mapping字段
- 在windows下安装mongoDB并且添加进windows服务
- Docker 入门实践