Activity最佳的实践


Activity被回收时

当一个Activity进入了停止状态时,有可能被系统回收
从另一个Activity回到这个被回收的Activity时,执行的时onCreate方法,如果之前有一些文本框之类的数据在里面就会被清空。

使用onSaveInstanceState()回调方法,解决数据保存的问题

onSaveInstanceState()方法中携带了一个Bundle类型的参数,可以通过putString()方法来保存。

恢复时,在onCreate()方法中,本身就有一个Bundle类型的参数,一般为null
通过getString()方法取出


Activity跳转轨迹

在使用一些不是自己写的项目时,看不懂别人的命名的Activity,不知道对应的界面时

可以新建一个类,继承Activity,在onCreate方法中

public class BaseActivity extends Activity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        Log.d("BaseActivity",getClass().getSimpleName());
    }
}

在日志中打印出当前的Activity的实例名

修改原先项目的代码,让所有Activity继承自BaseActivity


Activity管理器

实现直接退出整个程序的功能

不论在哪个界面上都能通过返回键直接退出程序

用一个集合类来保存所有的Activity,对其进行管理

public class ActivityCollector {

    public static List<Activity> activities = new ArrayList<Activity>();

    public static void addActivity(Activity activity) {
        activities.add(activity);
    }

    public static void removeActivity(Activity activity) {
        activities.remove(activity);
    }

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

在每个Activity中 onCreate()方法中调用集合类中的addActivity方法

重写onDestory()方法

@Override
    protected void onDestroy() {
        super.onDestroy();
        ActivityCollector.removeActivity(this);
    }

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值