Git Product home page Git Product logo

android-best-practices's People

Contributors

kaleai avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

android-best-practices's Issues

作者很用心,顺便提个疑问?

平时用得比较多的那种判断convertView 是否为空再去决定convertView能否被复用。
它复用的原理是,同一种viewType的时候,只要convertView不为空,不管多少item都可以复用的。

但是你的这种方式,是否只是item自己复用自己的view呢?假如同种类型的item有100条,是不是创建100个view呢?因为看你的TextItem类里面貌似都是每次创建一个新的。

如理解错误,请指出。谢谢~

对adapter 的疑问

为什么认为adapter应该是作为Fragment 或者 Activity的内部类? 还是应该根据情况来区分?

关于守护进程拉起application初始化的问题

关于守护进程拉起application初始化的问题,测试结果如下:小米推送是在点击 推送通知后才会拉起,因为用户点击推送消息的时间点不一样,不存在问题;而个推是在守护进程唤醒后会走application。会存在你说的情况。

关于第六点

可以使用BuildConfig.DEBUG来管理Log,打包时会自动置为false。

关于AdapterItem的问题

今天刚看到了commonAdapter的实现,感觉非常不错。但是想到了一个如果AdapterItem中,有时候需要调用onActivityResult方法的回调,楼主有什么解决方案么?

关于Adapter的一点点意见和疑问

  1. 关于AdapterItem接口的方法名字起的不是很好,bindview这个我觉得有歧义,因为recyclerview本身的adapter里面两个回调onCreateViewHolder和onBindViewholder,我们会在onCreateViewHolder做findById在onBindViewHolder做数据绑定。
    2.关于局部刷新,文章中只是实现了刷新单条数据,而没有实现刷新单条数据里面的某个控件,对于RecyclerView可以使用三个参数的重载方法实现public void onBindViewHolder(VHholder, int position, List payloads) ,不然比如有加载图片的话可能会引起图片闪烁。
    3.如果实践能够结合diffutil就更好

    以上

zan
tools还能这么用

Log最佳实践中获取类名的问题

为什么不使用以下方式定义LOG_TAG
private static final String LOG_TAG = MainActivity.class.getSimpleName();
这是google给的方法,看上去比getClassName()函数简洁很多
最后的结果:
对于MainActivity
LOG_TAG = "MainActivity"

log那篇文章

第一个问题:object,map,list,array。能不能和在一起,用一个方法
第二个问题:要支持文件写入,以便后续查找

关于通知栏的一个问题

在第一个方法中,StatusBarManager 的对象是从 mContext.getSystemService("statusbar") 获取的,然后利用反射调用了该对象的展开和关闭的方法。
但是在第二个JOOR,create了一个对象,然后调用了这个对象的相应方法。
在第二个方法中,创建的对象不是Context中的对象,所以我怀疑该方法不能起作用。我还没有写的代码验证,但是我感觉这是错的。
不知道我没有说清楚,如果我的理解有误,请指正。

关于Log工具类 获取调用者类名的方法

如果调用位置在匿名内部类的话,就会产生MainActivity$3这样的TAG, 可以把$后面的去掉,会不会好点

    /**
     * @return 当前的类名(simpleName)
     */
    private static String getClassName() {
        String result;
        StackTraceElement thisMethodStack = (new Exception()).getStackTrace()[2];
        result = thisMethodStack.getClassName();
        int lastIndex = result.lastIndexOf(".");
        result = result.substring(lastIndex + 1, result.length());

        //return result;
        int i = result.indexOf("$");
        return i == -1 ? result : result.substring(0, i);
    }

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.