android 的几个黄色警告解决办法

时间:2021-02-04 23:45:25

转自:http://my.eoe.cn/864234/archive/5162.html

1:Handler

1
2
3
4
5
6
7
8
    // This Handler class should be static or leaks might occur: IncomingHandler
@SuppressLint("HandlerLeak")
private Handler mHandler = new Handler() {
@Override
public void handleMessage(Message msg) {

};
};

解决方法:

1
2
3
4
5
6
    private Handler mHandler = new Handler(new Handler.Callback() {
@Override
public boolean handleMessage(Message msg) {
return false;
}
});

警告原因:

2:SimpleDateFormat

1
2
3
4
5
6
    // 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");

解决方法:

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

警告原因:

**3:new HashMap() **

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

解决方法:

1
 //TODO

警告原因:Use new SparseArray(...) instead for better performance

4:"String".toUpperCase(); "String".toLowerCase();

1
2
     @SuppressLint("DefaultLocale")
boolean b = "String".toUpperCase().equals("STRING");

解决方法:

1
 boolean  b = "String".equalsIgnoreCase("STRING");

警告原因:Implicitly using the default locale is a common source of bugs: Use toUpperCase(Locale) instead