写代码的时候,不希望整个工程中到处都是黄色的感叹号,尤其对于强迫症而言。那样的话,打开项目,会让人感觉整个项目不够清爽,干净。

所以写此贴,将平时碰到的警告全部总结集中起来。

1:Handler

// This Handler class should be static or leaks might occur: IncomingHandler
@SuppressLint("HandlerLeak")
private Handler mHandler = new Handler() {
    @Override
    public void handleMessage(Message msg) {

    };
};

解决方法:

private Handler mHandler = new Handler(new Handler.Callback() {
        @Override
        public boolean handleMessage(Message msg) {
            return false;
        }
});

警告原因:静态弱应用可能出现内存泄露问题

2:SimpleDateFormat

// To get local formatting use getDateInstance(), getDateTimeInstance(), or
    // getTimeInstance(), or use new SimpleDateFormat(String template, Locale
    // locale) with for example Locale.US for ASCII dates.
    @SuppressLint("SimpleDateFormat")
    SimpleDateFormat simpleDateFormat = new SimpleDateFormat(
            "yyyy-MM-ddHH:mm:ss");

解决方法:

SimpleDateFormat newSimpleDateFormat = new SimpleDateFormat(
            "yyyy年MM月dd日HH时mm分", Locale.getDefault());

警告原因:需要指定默认的locale

3:new HashMap()

@SuppressLint("UseSparseArrays")
    public static Map<Integer, String> CMD_MAP = new HashMap<Integer, String>();

解决方法:

@SuppressLint("UseSparseArrays")
    public static SparseArray<Integer, String> CMD_MAP = new SparseArray<Integer, String>();

警告原因:SparseArray是android提供的效率更高的集合工具

原文地址: http://my.eoe.cn/864234/archive/5162.html