Git Product home page Git Product logo

awesome-android-tips's Introduction

NewTab's GitHub stats

awesome-android-tips's People

Contributors

jiang111 avatar tanglie1993 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

awesome-android-tips's Issues

Handler

Handler机制有一个特点是不会随着Activity、Service的生命周期结束而结束。也就是说,如果你Post了一个Delay的Runnable,然后在Runnable执行之前退出了Activity,Runnable到时间之后还是要执行的。如果Runnable里面包含更新View的操作,程序崩溃了。

Runnable里强引用到View,会阻止Activity或Service销毁,在Runnable执行完之后才会销毁,所以造成内存泄露。而如果引用的View是使用WeakReference才会有崩溃的情况,需要判断View是否为null

自定义style

在style中写的样式通过视同parent标签来扩展你的样式,这样更高效。

<style name="Fill"> fill_parent fill_parent </style> <style name="Fill.Height" parent="@style/Fill"> vertical </style>

这里官方的建议是,只有Android自带的style才用parent标签,如果是自定义的style,直接用.符号来连接就行。如Fil.Height

使用LocalBroadcastManager替代Listener的疑问

模块间有消息需要传递时,使用LocalBroadcastManager替代Listener进行模块解耦。除了解耦,这样发送消息和执行消息差一个线程循环,可以减小方法的调用链,我这就碰到一次方法调用链太长导致StackOverflow的问题。

这样发送消息和执行消息差一个线程循环。能具体解释一下嘛?没看懂

an error tip

"getWindow().setLayout(ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.MATCH_PARENT); 设置全屏方法一定要在 setContentView 之后"

这个tip有问题,应该是”在setContentView之前“

Map Foreach

for (Map.Entry<String, Object> m : pars.entrySet()) {
soap.addProperty(m.getKey(), m.getValue());
}

判断Fragment可见性的问题

Fragment.setUserVisibleHintFragment可以重写此方法,然后根据参数的布尔值(true的话表示当前Fragment对用户可见),来执行一些逻辑。

这个应该是错误的。
/** * Set a hint to the system about whether this fragment's UI is currently visible * to the user. This hint defaults to true and is persistent across fragment instance * state save and restore. * * <p>An app may set this to false to indicate that the fragment's UI is * scrolled out of visibility or is otherwise not directly visible to the user. * This may be used by the system to prioritize operations such as fragment lifecycle updates * or loader ordering behavior.</p> * * @param isVisibleToUser true if this fragment's UI is currently visible to the user (default), * false if it is not. */

根据官方描述,这个方法应该让开发者主动调用来告诉系统当前fragment是否对用户可见,系统以此来处理一些界面逻辑。而不是系统根据fragment生命周期调用,所以开发者不能通过此方法判断fragment可见性。

标注版本限制

感谢你的收集的资料,我刚刚试了View.generateViewId() ,发现需要17以上的版本,所以建议最好标注下版本限制

一点点重复

《《
android.text.format.Formatter类中formatFileSize(Context, long)方法,用来格式化文件Size(B → KB → MB → GB);

android.media.ThumbnailUtils类,用来获取媒体(图片、视频)缩略图;
》》

这两个重复了,前面说过的。刚看到这里。

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.