2. Be careful with Threads What’s wrong with that code? 2 publicclass Main extends Activity { private Thread t = new Thread() { publicvoid run() { doWork(); }; } ... }
3. Они только и ждут, чтобы подставить тебя Этот код приведет к лику всей активити и всего, на что она ссылается.Утечка происходит из-за добавления Thread в ThreadGroup при его создании. http://code.google.com/p/android/issues/detail?id=7979 3
4. Всегда закрывайте файловые потоки 4 privatevoidreadFromFile(String filename) throwsFileNotFoundException, IOException{ File f = new File(filename); InputStreaminputStream = null; try { inputStream = newFileInputStream(f); //do read operations } finally { if (inputStream != null) { try { inputStream.close(); } catch (IOException e) { //Log or ignore } } } }
5. иначе Ваш процесс прибьют, как только пользователь решит примонтировать SD-Карту. 5
6. МЕНЮ Никогда, если не преследуете особой цели, не перекрывайте метод onMenuItemSelected() Activity. Существуют два специальных метода onOptionsItemSelected() и onContextItemSelected(). 6
8. PENDING INTENT FLAGS 8 Если не хотите получить непрадсказуемое поведение, всегда обращайте внимание на флаги у PendingIntent
9. EXCESS SCROLL ON SAMSUNG LISTVIEW Производители могут легко вносить изменения в базовые классы платформы. Если вы добавляете «свое» поведение, перекрывая один из методов компонента, будьте готовы, что ваше решение может провалиться на некоторых девайсах. Например, это касается практически всех реализаций pull-to-refresh, что я видел. 9