• Использование делегата для получения данных из AsyncTask
    0
    Ага, а еще лучше вообще сервис использовать для таких целей :)
    Ну WeakReference тут лишнее, если уже собрались вызывать cancel. Так что да, можно просто в cancel занулять listener.
  • Использование делегата для получения данных из AsyncTask
    +1
    Вообще в конце концов вызов метода AsyncTask.cancel заканчивается вызовом Thread.interrupt, который в свою очередь просто выставляет флажок о том, что поток прерван.
    Если поток в этот момент заблокирован на методах wait, sleep или join, то поток разблокируется и эти методы кинут InterruptedException. Если поток в этот момент занят чем-то другим и не заблокирован, то InterruptedException бросится сразу при первом вызове wait, sleep или join.

    Такая проблема может возникнуть, если плохо написать метод AsyncTask.doInBackground :)
    Т. е. так, чтобы он не предоставлял возможность отменить свое выполнение. Например, выполнять в нем какие-нибудь сложные расчеты, которые занимают много времени. При этом вызовов wait, sleep или join не будет. Если периодически не проверять не отменена ли задача и прекращать вычисления, то вызов AsyncTask.cancel ничего не даст.

    В случае сетевого запроса скорее всего такой проблемы не возникнет, но лично я бы на всякий случай дополнительно в onStop убирал listener из AsyncTask.
  • Использование делегата для получения данных из AsyncTask
    0
    В вызове AsyncTask.cancel никакой магии нет — задача завершится только если это возможно.
    AsyncTask.cancel внутри вызывает FutureTask.cancel, который делает вот что:
    Attempts to cancel execution of this task. This attempt will fail if the task has already completed, has already been cancelled, or could not be cancelled for some other reason.

    Все зависит от того, что происходит в AsyncTask.doInBackground. Нужно удалять listener из AsyncTask, иначе можно получить memory leak.
  • Использование делегата для получения данных из AsyncTask
    +1
    Ничего себе никакой — а memory leak за проблему уже не считается? :) Пока не завершится выполнение AsyncTask сборщик мусора не сможет собрать MyActivity.
  • Stringer Java Obfuscation Toolkit: защита Java и Android-приложений
    0
    И еще небольшой вопрос :)
    Не эксперт в криптографии, но AES же симметричный, ключ должен хранится в приложении — разве его сложно расшифровать?
  • Stringer Java Obfuscation Toolkit: защита Java и Android-приложений
    0
    Ага, ну так понятнее, вы просто считаете, что constant pool — это «logic of our applications» :) Мне кажется, что логика приложения — это все-таки оставшиеся 20-50%, которые приходятся в class-файлах на методы.
    Если в цикле складывать миллион строк — то ничего хорошего не получится и без волшебного Stringer Java Obfuscation Toolkit :)
    Так а конкретных цифр для Dalvik у вас нет? Есть ли разница между Dalvik и JVM? Все-таки в dex пул констант общий.
  • Stringer Java Obfuscation Toolkit: защита Java и Android-приложений
    0
    Actually Strings is about 50-80% of logic of our applications.

    Это вы как так посчитали?
    А как вообще дела обстоят с потерей производительности? Все-таки строки приходится расшифровывать в рантайме.
  • Публикация приложения в Android маркеты
    +2
    Размещал приложение в LG SmartWorld, Samsung Apps Store и Amazon App Store — суммарно за несколько месяцев установок набралось меньше ста. При этом на Google Play 400k установок.
    А LG SmartWorld и Samsung Apps Store мне показалось решили сделать в принципе максимально неудобными для публикации приложений и им это удалось.
  • Stringer Java Obfuscation Toolkit: защита Java и Android-приложений
    0
    Т.е. эта штука за 150$ только строки шифрует?
    А dex2jar падает — это не показатель, его пофиксят.
  • Организация архитектуры взаимодействия Activity и Service
    0
    ResultReceiver бьет через процессы

    Только если свое приложение работает в нескольких процессах. Иначе будет падать эксепшн в intent.getParcelableExtra, т.к. класс такой не найдет.
  • Организация архитектуры взаимодействия Activity и Service
    +1
    Мне кажется r_ii про хэндлер, который передается в ResultReceiver в конструктор, он там действительно для того, чтобы на нем вызывать onReceiveResult, поэтому onReceiveResult будет выполнен в том же потоке, из которого вызвался createIntent. А вообще каждый раз создавать новый Handler там тоже не нужно :)
  • Растим мобильных разработчиков
    0
    oDesk Wizard не хватает, функционала, согласен. Но оно для нас успешно, как минимум, нам уже писали из oDesk по его поводу.

    Вот как. Ну тогда вполне успешный, особенно если учесть, что аналогов вроде как больше и нет в Google Play.

    Часы — демо приложение, для отработки обоев.

    Вот это я и имел ввиду — зачем этот hello wallpaper в маркете? :)

    Shabbat и Yahrzeit, как ни парадоксально, были нам заказаны, и дизайн пришел от заказчика.

    Это жесть. Ну ладно, жираф большой — ему видней :)
  • Растим мобильных разработчиков
    0
    Ок, oDesk Wizard вполне себе приложение, но рейтинг в 3.5 говорит, что не такое уж оно и удачное. Хотя не рейтингом единым, конечно. Но Digital Clock Wallpaper, например. Сколько точно таких часов от таких же начинающих разработчиков уже есть в Google Play?

    Про Shabbat и Yahrzeit даже не знаю, что написать. Даже если закрыть глаза на то, что два этих приложения недалеко ушли от hello world, оно ведь и работает не очень, судя по отзывам: «Problem is that it has zero accuracy in calculating.»

    Дизайнер оформляет кнопочки, иконки и прочую приятную мишуру, чтобы результат смотрелся солиднее.



    Вот тут особенно солидно смотрится :) Серые буквы на желтоватом фоне, ну нечитаемо же практически.
    У меня такое получается, когда я начинаю заниматься дизайном.
  • Растим мобильных разработчиков
    +3
    Также сразу устанавливается цель — публикация в магазине приложений Google (ну или Apple, для iOS).

    Маркет не жалко?
  • Qt и Android Market или вторая жизнь Анаграмм
    0
    Судя по средней оценке в 2.2 — пользователи очень рады, что им приходится еще дополнительно качать и устанавливать Ministro :) Зато быстро с Qt портировалось, да.
  • Мой опыт разработки и продвижения. Игра «Балда»
    0
    Пока никак не вывожу — в Беларуси с этим проблема.
    PayPal у нас не работает в принципе (хотя некоторым и удается зарегать). Регулярные банковские переводы от Admob очень уж будут походить на незаконную предпринимательскую деятельность, а работать как ИП с ними нельзя — нужен бумажный договор с печатями и акты выполненных работ ежемесячно.
    Юристы сказали, что в такой ситуации легальной схемы работы нет.
  • Мой опыт разработки и продвижения. Игра «Балда»
    0
    Распространяю не только через маркет, поэтому пользуюсь Flurry.
  • Мой опыт разработки и продвижения. Игра «Балда»
    0
    Вообще за такое обещают много плохих отзывов от злых пользователей, что вполне логично. Не знаю, как меня еще пронесло. И фиксить ли багу — по статистике у меня 83% переходов сделаны случайно :)
  • Мой опыт разработки и продвижения. Игра «Балда»
    0
    Да, платят за клики. Просто кликов много, почему такой высокий CTR — я выше отписал.
  • Мой опыт разработки и продвижения. Игра «Балда»
    0
    Никаких онлайн-словарей с API не нашел, с вики-словарем не подружился, поэтому просто ищу слова на ozhegov.su и потом разбираю html.
    Насчет регистрации — да, все-таки я перепутал, не 15$, а 25$ стоит регистрация.
    Я действительно не понимаю, почему такой грех рисовать клеточки не по клеточкам :) Дизайнер, увы, ничего против этого не имел. С этим есть небольшая проблема — размер поля может быть разным, от 4 до 7 клеток, поэтому на одном и том же фоне отрисовать игровое поле так, чтобы оно попадало в клеточки не выйдет.
  • Мой опыт разработки и продвижения. Игра «Балда»
    0
    Да, Word Game Balda от LGE действительно отличная, но в ней как минимум нельзя выбирать размер поля.
    Они похоже ее допиливают и добавляют новые фичи, но оценить их смогут только владельцы LG.
    P.S. А картинки с мозгом больше нет :)
  • Мой опыт разработки и продвижения. Игра «Балда»
    0
    Нужно тапнуть на первую букву в слове, не отрывая пальца провести по остальным буквам слова до конца и только после этого поднять палец от экрана.
  • Мой опыт разработки и продвижения. Игра «Балда»
    +3
    Да, реклама практически только на главной. Я тоже удивлялся высокому CTR, пока не добавил логирование переходов по рекламе. И оказалось что много переходов с тех страниц, на которых рекламы не должны быть в принципе.
    И буквально на днях я нашел один интересный баг — оказывается при переходе с главного экрана реклама внизу пропадает, но на тапы продолжает реагировать :) Поэтому, видимо, очень много случайных кликов. Странно то, что баг этот был с самого первого релиза, но пользователи на это не жаловались.
  • Мой опыт разработки и продвижения. Игра «Балда»
    +1
    Где же вы раньше были? :) Не знаю как так получилось, но такое решение мне почему-то в голову не пришло. Мне кажется вышло бы чуть медленнее, но вполне приемлемо по скорости. Спасибо за идею, надо будет проверить.
  • Мой опыт разработки и продвижения. Игра «Балда»
    0
    Как я уже писал в процессе разработки было потрачено 215$ (200$ за дизайн + 15$ за регистрацию в Android Market). В Admob приложение заработало на данный момент около 1100$.
    Поэтому да, финансово — окупились.
    Разработкой я занимался в свободное время, но могу сказать что потраченные на разработку усилия тоже не пропали — я приобрел новый интересный опыт.
  • Мой опыт разработки и продвижения. Игра «Балда»
    0
    Про package naming conventions я конечно же в курсе, но это ведь просто рекомендация для того, чтобы имена пакетов не конфликтовали. Насколько мне известно никто такой префикс как by.squareroot не использует и он вполне свободен.
  • Мой опыт разработки и продвижения. Игра «Балда»
    0
    Похоже что дело в прошивке, но может быть можете собрать лог после зависания?
  • Мой опыт разработки и продвижения. Игра «Балда»
    0
    Просто у меня его нет. А где это вы нашли такой сайт? :)
  • Мой опыт разработки и продвижения. Игра «Балда»
    0
    Спасибо за совет, добавил QR код.
  • Мой опыт разработки и продвижения. Игра «Балда»
    +3
    Спасибо! :)