关于activity的使用规范小总结

activity,在开发过程中是使用率最高的组件了,总结几个小的规范,在开发过程中会更加的舒畅,是的,舒畅的开发代码,就是这样一种感受。。。

1,最快速的知道目前所在的活动是哪一个活动类
接手别人的代码,在熟悉代码的过程中,这一个需求是最迫切的,如何做到呢?very easy,但是也是有个前提和过程的:

比如创建一个demo,
首先需要创建一个基础活动BaseActivity,让他extends Activity,以后所有的 activity都直接继承这个BaseActivity。在BaseActivity的onCreate()方法中,加一条log语句:Log.e(“baseActivity”,getClass.getSimpleName());这样一来,每当有新的活动被创建,就会打压一条log语句,并且将这个子类活动的名字打印出来,看log一目了然。

2,随时随地,可以方便的退出程序
 一般的程序都是一路的activity接着activity跳转下去,如果,线性的一个个跳转,我跳转到最后一个activity了,现在想退出程序该如何做呢?
 直接System.exit(0),或者System.exit(1),强制杀掉程序,其实这样并不完美,为什么呢,
 前一刻还都在使用,系统将这一路的activity对象统统的入栈,进行管理了,后来突然说要将这个栈给直接销毁掉,如果我是这个栈,我就想削你了,当然,从逻辑的角度来说,activity逐个入栈了,我们也是理性的清晰的,将其一个个出栈,销毁掉,步骤清晰,逻辑清晰,不会存在什么泄露隐患。
 擦擦擦,说这么多,到底该怎么做呢,拿一个方案出来啊?
 思路很简单,只需要使用一个专门的集合类对所有的活动进行管理就可以了。

上代码

创建一个ActivityCollector类作为活动的管理器:
package com.freedev.mydemo;

import android.app.Activity;

import java.util.ArrayList;
import java.util.List;

/**
* Created by yujie.zhang on 2016/12/22.
*/

public class ActivityCollector {
public static List activities = new ArrayList<>();

/**
 * 增加
 *
 * @param activity
 */
public static void addActivity(Activity activity) {
    activities.add(activity);
}

/**
 * 移除
 *
 * @param activity
 */
public static void removeActivity(Activity activity) {
    activities.remove(activity);
}

/**
 * 清空
 */
public static void finishAll() {
    for (Activity activity : activities) {
        if (!activity.isFinishing()) {
            activity.finish();
        }
    }
}

}
在这个活动管理器中,通过一个list来管理活动,在所有activity的基类 BaseActivity中,在onCreate中调用ActivityCollector.addActivity(this);加入管理器的list中,在onDestroy()方法中调用ActivityCollector.removeActivity(this);这样一来就把当前的activity实例加入了这个管理器中,当我们再任何一个activity中,当想退出应用的时候,直接调用clear方法,ActivityCollector.finishAll();就销毁了list中的所有活动实例了,就达到了安全退出的目的;

3,启动活动的最佳方式
 其实这个总结就提现了一点,封装的概念,activity之间跳转,需要几行代码,如果 再通过intent传几个参数,那就更多了几行了,我们完全可以将这些代码,封装成一个方法,加上注释,这样一来,阅读代码非常方便整洁,启动跳转的时候,也就只需要调用这个方法,传入相应的参数就可以了,一定程度上达到了解耦,解冗余的目的,让代码非常美观,结构非常整洁。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值