Хабр Курсы для всех
РЕКЛАМА
Практикум, Хекслет, SkyPro, авторские курсы — собрали всех и попросили скидки. Осталось выбрать!
class ViewHolder {
private final View title;
private final View subTitle;
public ViewHolder(Context context, View view) {
title = view.findViewById(R.id.some_id);
subTitle = view.findViewById(R.id.some_other_id);
}
public void setData(SomeData data) {
doSomething();
}
}
@Override
public void backgroundWork() {
BackgroundExecutor.execute(new Runnable() {
@Override
public void run() {
try {
TestActivity_.super.backgroundWork();
} catch (RuntimeException e) {
Log.e("TestActivity_", "A runtime exception was thrown while executing code in a runnable", e);
}
}
}
);
@Override
public void publishProgress(final int progress) {
handler_.post(new Runnable() {
@Override
public void run() {
try {
TestActivity_.super.publishProgress(progress);
} catch (RuntimeException e) {
Log.e("TestActivity_", "A runtime exception was thrown while executing code in a runnable", e);
}
}
}
);
}
@Override
public void onBGTaskFinish(final String resultText) {
handler_.post(new Runnable() {
@Override
public void run() {
try {
TestActivity_.super.onBGTaskFinish(resultText);
} catch (RuntimeException e) {
Log.e("TestActivity_", "A runtime exception was thrown while executing code in a runnable", e);
}
}
}
);
}
handler_ = new Handler();@ViewById.View.View по id, как вообщем и распределять программу по потокам (AsyncTask), пробрасывать объекты через всю иерархию вызовов, и т.п. — это сквозная логика. @ViewById задекларированный в классе помеченным @EBean незаметно потащит за собой весь контекст, что может привести к утечке памяти при потери бдительности (а библиотека как раз этому способствует).Application, который потянет за собой инициализацию RoboGuice. Казалось бы, подумаешь — немного батарейки сожрет и все. А если представить что это сообщение обработка клика по виджету?
AndroidAnnotations — упрощаем и укорачиваем код без вреда для здоровья проекта (I часть)