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

时间:2022-07-23 23:49:02

转自: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