1. Java / Говнокод #16200

    +75

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    11. 11
    12. 12
    13. 13
    14. 14
    15. 15
    16. 16
    17. 17
    18. 18
    19. 19
    20. 20
    21. 21
    22. 22
    23. 23
    24. 24
    25. 25
    26. 26
    public void onBackPressed() {
    	if (getSupportFragmentManager().getBackStackEntryCount()==0 || getSupportFragmentManager().getBackStackEntryCount()==1) { 
    							finish();
    							android.os.Process.killProcess(android.os.Process.myPid());
    							((MainActivity)instance).onDestroy();
    	}
    }
    
    /* чуть дальше */
    
                JSONObject jsonObjectA = null, jsonObjectB = null;
                try {
                    jsonObjectA = new JSONObject(a.toString());
                    jsonObjectB = new JSONObject(b.toString());
                } catch (JSONException e1) {
                    e1.printStackTrace();
                }
    
                if ((jsonObjectA != null || jsonObjectB != null) || (jsonObjectA != null && jsonObjectB != null)) {
                    try {
                        valA = jsonObjectA.getString("name");
                        valB = jsonObjectB.getString("name");
                    } catch (JSONException e) {
                        e.printStackTrace();
                    }
                }

    Первый фрагмент кода - это больше специфика Android - при нажатии кнопки назад: закрыть приложение, убить процесс и дернуть метод onDestroy() который в норме должен автоматом вызваться при закрытии приложения но не вызывается из-за того что мы убиваем процесс. Про то что условие if можно оптимизировать я умолчу.

    На if() во втором фрагменте заглючил даже встроенный в intelliJ Idea инструмент рефакторинга...

    Запостил: TAX, 20 Июня 2014

    Комментарии (7) RSS

    • > if() во втором фрагменте

      это охуительно
      Ответить
    • > убить процесс
      Зачем?!
      Ответить
      • cleaned
        Ответить
      • Чтоб батарею не жрал, например?
        Ответить
        • А нахер для этого убивать процесс? Он же совсем не виноватый, что там сервисы с поднятым WakeLock'ом крутятся или таймеры каждые 10 секунд будят телефон и лезут в инет...

          В целом - убивать правильно написанный ведропроцесс не имеет никакого смысла.
          Ответить
        • Она же чугунная, что с ней станется.
          Ответить
          • Блин, как я теперь спать буду, а? Я представил себе андроида, жрущего чугунную батарею. А жрет он ее, видимо, чтобы вырасти и поработить мир...

            P.S. Еще вспомнился та-кун terminal core из FLCL.
            Ответить

    Добавить комментарий