
Алексей
11.10.2016
15:43:43
Да я бывает передаю контекст, например для работы с базой
Ну например возьмем базу, поиск из базы, добавление, удаление
Передал контекст и данные, м статичном методе всё записал в базу
Или надо синглтон базы?

Google

Dmitry
11.10.2016
15:46:47
DAO, ContentProvider, лучше будет

Алексей
11.10.2016
15:48:06
Дальше, допустим класс хелпер для работы со строками. Строку передал, строку получил
Можно cтатик метод?

Максим
11.10.2016
15:50:25
Если коротео, что делает Looper,
?
У меня с потоками не очень
Точнее с теорией
Сам лупер с хендлером юзал, но что он делает не знаю))

Dmitry
11.10.2016
15:52:37

Алексей
11.10.2016
15:53:17
https://m.habrahabr.ru/post/142256/ там куча инфы по этому вопросу

Dmitry
11.10.2016
15:54:46
Если коротео, что делает Looper,
Вкратце - связывает текущий поток с очередью сообщений, чреез которую ты можешь потом взаиможействовать например с помощью Handler ну ил инапрямую/

Google

Dmitry
11.10.2016
15:56:26
ну и поток естественно не будет остановлен пока не будет вызван quit

Максим
11.10.2016
15:56:58
Например, где его можно использовать помимо этих задач? Есть пример из жизни?
58
вниз голосования
Looper позволяет задачи, которые будут выполняться последовательно на одном потоке. И обработчик определяет те задачи, которые мы должны выполнить.
Теперь понял
http://stackoverflow.com/questions/7597742/what-is-the-purpose-of-looper-and-how-to-use-it

Vitaly
11.10.2016
16:02:08
грубо говоря, если у тебя есть класс
public class A {
static Context context;
public A(Context ctx) {
context = ctx;
}
public static myMethod() {
context.doSomething...
}
}
вот за такое надо руки оторвать

Владимир
11.10.2016
16:05:34
а если сам класс статик, а ему передаются view или context как переменные ?

Vitaly
11.10.2016
16:05:58
если они передаются в метод, то емнип работает так-же как и любой локальный скоуп
живо до тех пор, пока жив метод

Владимир
11.10.2016
16:06:06
или метод у класса статик?

Fieldmarshal
11.10.2016
16:06:10
Ребята, кто-то из вас создаёт прототип UI приложения в процессе разработки?
С помощью какого инструмента вы это делаете? Какие есть хорошие бесплатные программы или онлайн-редакторы для прототипирования?
Сам гуглил, находил только платные и free trial.

Владимир
11.10.2016
16:06:36
скретч

Pavel
11.10.2016
16:06:45
Зеплин вроде проект бесплатно

Vitaly
11.10.2016
16:07:01
вот более коректный пример говнокода

Alexander
11.10.2016
16:07:06
ninja mock

Vitaly
11.10.2016
16:07:07
public class myActivity extends ListActivity
{
public static Context baseContext;
public void onCreate(Bundle savedInstanceState)
{
baseContext = getBaseContext();
}
статик живет намного дольше активити

Google

Vitaly
11.10.2016
16:07:29
даже когда myActivity будет уничтожено - контекст протечет
потому что статик жив пока живо приложение и никак не завязан на lifecycle активити
более того, каждый поворот такого активити будет удваивать пробоину

Владимир
11.10.2016
16:08:21

Vitaly
11.10.2016
16:08:57

Fieldmarshal
11.10.2016
16:09:08
ninja mock
Пробовал ninjamock, там практически нет шаблонов по Material Design, что весьма печально.

Vitaly
11.10.2016
16:09:10
здесь нет конкретных случаев вида "не делай вот так и вот так"
если ты понимаешь как работает static - у тебя никогда не будет проблем
но вот например кейс как пробить вьюшку на память
анонимный класс для обработки коллбэка

Владимир
11.10.2016
16:09:52
вот класс Tools и его метод
public static List<WifiInfo> filter(List<WifiInfo> models, String query) {
query = query.toLowerCase();
final List<WifiInfo> filteredModelList = new ArrayList<>();
for (WifiInfo model : models) {
final String text = model.SSID.toLowerCase();
if (text.contains(query)) {
filteredModelList.add(model);
}
}
return filteredModelList;

Vitaly
11.10.2016
16:09:55
если (убаси б-г)

Dmitriy
11.10.2016
16:09:58

Vitaly
11.10.2016
16:10:04
у тебя из активити дергается сетевой запрос
и передается обработчик коллбэка как анонимный класс - то это звездец в квадрате

Alexander
11.10.2016
16:10:39
@fm_norton ну тогда проще взять какой-нибудь kit с готовыми кусками интерфейса и побырому состряпать прототип. В том же скетче, или фотошопе, или ai

Vitaly
11.10.2016
16:10:55
во-первых, оно течет. Потому что анонимный класс держит ссылку на outer класс до тех пор, пока не отработает асинхронный метод, во-вторых, коллбэк может прилететь когда активити уже нет и это краш

Fieldmarshal
11.10.2016
16:11:23

Vitaly
11.10.2016
16:11:41

Google

Ilnar
11.10.2016
16:11:43

Dmitriy
11.10.2016
16:12:20

Vitaly
11.10.2016
16:12:55
локальный скоп
память удерживается до тех пор, пока метод находится в стаке
ничего текущего тут нет

Admin
ERROR: S client not available

Владимир
11.10.2016
16:18:27
про мой метод что скажете? не течет?

Aleksei
11.10.2016
16:20:35
А зачем тут статика?

Vitaly
11.10.2016
16:20:45
таки да
течь не течет, но это во-первых не нужно

Aleksei
11.10.2016
16:27:39

Владимир
11.10.2016
16:28:35
Что бы потом просто сделать Tools.filter()
и получить отфильтрованный список

Aleksei
11.10.2016
16:33:42

Алексей
11.10.2016
18:44:08
Если я передам контекст активити в какой-то статичный метод, то после уничтожения активити в том методе останется ссылка на активити и будет утечка. Я все правильно понял?)
Так я могу тогда в конце метода обнулить контекст, и не будет тогда проблем....

Yuri
11.10.2016
18:47:44
Понял правильно =) Можно и обнулить в конце метода. Только нужен ли вам контекст активити? Почему бы не взять контекст аппликейшена?
Ну и не понятно, когда будет этот "конец метода" — он может быть очень даже не скоро, тогда память будет занятся "зря"

Алексей
11.10.2016
18:56:50
Ого я говнокодер?
Я бы рассказал, но стыдно ?

Google

Алексей
11.10.2016
19:03:14
Хорошо проект новый начал, не успел наговнокодить

Gerc
11.10.2016
19:14:20
Потом будешь все даггером инжектить

Aleksei
11.10.2016
19:18:12

Denis
11.10.2016
19:20:00

Andre
11.10.2016
19:21:07

Denis
11.10.2016
19:22:01

Алексей
11.10.2016
19:22:31
Спасибо всем, много интересного узнал

Andre
11.10.2016
19:23:31

Алексей
11.10.2016
19:23:35

Andre
11.10.2016
19:23:45
ты же лупер используешь в каком-то треде наверное

Denis
11.10.2016
19:25:12

Andre
11.10.2016
19:26:00

Denis
11.10.2016
19:27:04

Andre
11.10.2016
19:27:29
оно ж как-то криво работает, если вьютайпы и их количество не пропишешь

Denis
11.10.2016
19:30:10
А в котлине нет async/await как в c#?