• 这些情况下onReume不应该是你的选择


    面试Android程序员的时候问过以下几个基本问题,得到的回答经常不尽人意:

    1, Activity A跳转到Activity B,Activity B完成后,Activity A要刷新一下自己的数据以保持数据的同步,这种情况在哪个时机调用刷新方法?

    回答:在Activity A的onResume中。

    2, Activity A被申明为SingleTask,每次跳转到Activity A的时候,Activity A都要刷新一下数据,但因为SingleTask所以onCreate未必执行,那么应该还在哪个时机调用刷新方法?

    回答:在Activity A的onResume中。

    3, Activity A展示的时候生成了很多现场数据,用户因为别的事情点击Home使得当前的Activity A切到后台,之后再次点击应用进入Activity A的时候,现场数据都丢了,这个是因为系统资源不足而回收了处于栈低的Activity A,再次打开Activity A 的时候系统自动创建了被其回收的Activity A,但是现场数据系统并没有保存,那么应该在哪个时机保存这些数据?

    回答:在Activity A的onPause中。

    很多程序员在遇见上述情况的时候直接偷懒放到onResume/onPause中。问题来了:

    1, 调用过多。很多时候并不是上述描述的场景,但依然刷新了数据或者保存了数据,做得太多,浪费用户流量,消耗应用性能;

    2, 代码被整乱。会滋生很多bug出来。

    这样的代码不追求精致和极致,急功近利,只求目标,不看结构。好的代码要刚好满足需求场景、不多做也不少做,丁是丁卯是卯。

    上述场景的正确答案分别是:

    1的场景下应该用startActivityForResult/setResult/onActivityResult这些方法来配合使用;

    2的场景下应该用onNewIntent方法;

    3的场景下应该用onSaveInstance方法。

  • 相关阅读:
    修改oracle用户密码永不过期
    mysql中的union操作(整理)
    mysql条件查询and or使用实例及优先级介绍
    vue实现购物清单列表添加删除
    vue实现全选框效果
    vue实现穿梭框效果
    legend3---13、vue是真的好用
    黑马在线教育项目---34-37、webuploader实现用户头像的异步上传
    lareval重命名created_at和updated_at字段
    js的dom操作(整理)(转)
  • 原文地址:https://www.cnblogs.com/mosthink/p/5289013.html
Copyright © 2020-2023  润新知