Droid-Fu为广大的Android开发者提供了非常优秀的共享库,本篇文章将介绍一些Droid-Fu的一些想法以及一些核心特性。

  • Droid-Fu 是一个通用的Android应用库
  • Droid-Fu 的主要目的是使得Android开发更加容易
  • Droid-Fu 是开源的
  • 还不够吗?

Droid-Fu 包含了许多工具类,还有非常易用的Android组件,所有这些对于Android应用来说都是非常有用的。Droid-Fu在以下领域提供了支持:

  • Android应用的生命周期
  • 后台任务
  • Http消息处理
  • 远程图片处理
  • 定制的各种Adapter

… 等等。Droid还很年轻,不久的将来会有更加精彩的特性!

基础知识

Droid-Fu 的最大优势是他提的应用生命周期帮助类。如果你正在开发一款Android应用,而它的主要任务是运行后台任务,例如从web上抓取数据,你肯定会在你的应用中使用Droid-Fu。

讨厌的AsyncTask

关于此话题,我已在两篇文章讨论过。第三次,我终于找到了优雅的解决办法。我们先来看看AsyncTask的问题吧:第一,AsyncTask是什么?它是一个执行大开销操作的帮助类。如果你正在开发一个需要访问web服务端的手机应用,很可能你已经使用过它了。

其基本思路是:发起一个异步任务,当任务线程执行过程中,显示一个漂亮的进度框,当任务将结果返回到Activity时进度框关闭。酷,但是如果用户决定旋转屏幕,可异步任务还在运行怎么办(屏幕旋转当前的Activity会完成整个一轮生命周期。然后重新创建,回调onCreate()方法。)?或是一个电话打进来,打断应用,Android决定将该应用进程杀死怎么办?这两种动作都会中断activity,当下次继续使用该应用时会recreate该Activity。很不幸,AsyncTask仍旧在运行,并且保留一个指针指向老的Activity,因为重启的Activity在内存中式完全不同的一个对象(并且还会执行Activity的onCreate(),就好像Activity是第一次启动一样)。我不确定AsyncTask是否还会将结果返回给老的Activity对象(如果是弱引用,可能它已经被回收),但是无论如何,新的Activity不会接收到该数据,因为完全是一个新的Activity实例。

大概不会。

BetterAsyncTask来救援

This is all you have to do to launch a task showing the standard Android indeterminate progress dialog:

01 public class MyActivity extends BetterDefaultActivity {
02  
03  protected void onResume() {
04    super.onResume();
05  
06    if (isLaunching()) { // this is explained further down this article
07      MyBetterAsyncTask task = new MyBetterAsyncTask(this);
08      task.execute(someData);
09    }
10  }
11  
12 }

BetterActivity 和 BetterService

)。

你将在以下方面获得帮助

生命周期帮助类

  • isLaunching() :当且仅当Activity或Service第一次执行onCreate时为true
  • isRestoring() :当Activity或Service在被Android杀死后重新恢复时为true
  • isResuming() :当Activity或Service执行onResume之前并没有执行onCreate时为true
  • isApplicationBroughtToBackground(): 活动,那么返回true

Dialog帮助类

BetterActivity提供了如下的帮助方法让你轻松显示Dialog

  • showInfoDialog(): 警告对话框
  • showAlertDialog():
  • showErrorDialog(): 和showAlertDialog一样,只是多了一个参数显示异常信息
  • showListDialog(): 处理程序

所有的这些Dialog都是可以定制化的 (e.g. message or icon).

在以后的文章中将介绍更多的Droid-Fu特性!

得到它呢?

The Droid-Fu source code is currently hosted on GitHub, which is the place where the cool kidz hang out these days. It’s a maven project, but the JARs aren’t yet hosted anywhere. Anyway, just check it out using git clone:

git clone git://github.com/kaeppler/droid-fu.git

and run:

mvn install -DcopyTo=path/to/your/apps/lib/dir

(you need to install git and maven2 for all that magic to work).

相关文章:

  • 2021-09-21
  • 2022-01-30
  • 2022-12-23
  • 2022-12-23
  • 2021-04-26
  • 2022-01-24
  • 2021-05-17
  • 2022-12-23
猜你喜欢
  • 2022-12-23
  • 2021-04-10
  • 2021-12-04
  • 2021-12-29
  • 2021-08-06
  • 2021-06-16
  • 2021-09-23
相关资源
相似解决方案