Size: a a a

StartAndroid Ru Chat

2020 September 15

NM

Nikita Mozhaev in StartAndroid Ru Chat
Помогите пожалуйста
источник

NM

Nikita Mozhaev in StartAndroid Ru Chat
источник

DP

D. P. in StartAndroid Ru Chat
Всем привет.
Пытаюсь организовать передачу сообщений из отдельного потока (в котором сетевая активность происходит) внутрь MainActivity. После получения нужного сообщения надо поменять состояние ProgressBar или вывести что-то в TextView или перейти к другой Activity. Начитался про ConcurrentLinkedQueue, но  получается из тех примеров, что я видел, что надо организовать блокирующий цикл и читать из очереди сообщения. Либо что? Запустить из MainActivity ещё один поток, в котором будет цикл, который при получении дёрнет ChatLog.append( text ) или как лучше? Подскажите заблудившемуся, кто такое делал.
источник

AP

Andrey Pomazkin in StartAndroid Ru Chat
RxJava пробовал?
источник

DP

D. P. in StartAndroid Ru Chat
только название видел
источник

DP

D. P. in StartAndroid Ru Chat
я яву и под андроид изучаю вторую неделю
источник

DP

D. P. in StartAndroid Ru Chat
И ещё, я так и не допонял из документации:
Если я объявил
class A1 extends Thread { public void bum(){ ... }  }

и вызвал
class A0 {
  A1.start();
  A1.bum();
}


В котором из потоков выполнится A1.bum() ?
источник

V

Vladushka in StartAndroid Ru Chat
D. P.
И ещё, я так и не допонял из документации:
Если я объявил
class A1 extends Thread { public void bum(){ ... }  }

и вызвал
class A0 {
  A1.start();
  A1.bum();
}


В котором из потоков выполнится A1.bum() ?
Может рановато ещё для потоков, если джаву 2 недели учишь?

Это хорошо, конечно, что унаследовался от Thread, но тут у тебя просто сейчас набор слов ))

1.У потока есть метод run. Его  нужно переопределить и прописать там нужную логику. Это вместо bum. Ну или этот bum должен вызываться внутри run

2. Я очень надеюсь, что классе A0 ты все изобразил схематично. Если все же нет, то в классе A0 тоже должен быть метод, в котором ты создаёшь экземпляр класса A1
A1 thread = new A1(). И уже только потом дергаешь start. А то сейчас у тебя как будто A1 статический класс.

3. В твоей интерпретации должен запустится главный поток, потом запустится поток A1

4.У Thread есть статический метод current Thread, и ты всегда можешь узнать, какой поток работает
источник

DP

D. P. in StartAndroid Ru Chat
Vladushka
Может рановато ещё для потоков, если джаву 2 недели учишь?

Это хорошо, конечно, что унаследовался от Thread, но тут у тебя просто сейчас набор слов ))

1.У потока есть метод run. Его  нужно переопределить и прописать там нужную логику. Это вместо bum. Ну или этот bum должен вызываться внутри run

2. Я очень надеюсь, что классе A0 ты все изобразил схематично. Если все же нет, то в классе A0 тоже должен быть метод, в котором ты создаёшь экземпляр класса A1
A1 thread = new A1(). И уже только потом дергаешь start. А то сейчас у тебя как будто A1 статический класс.

3. В твоей интерпретации должен запустится главный поток, потом запустится поток A1

4.У Thread есть статический метод current Thread, и ты всегда можешь узнать, какой поток работает
Я написал код очень схематично.
Я уже больше 15 лет только программирую, так что тут больше непонимание явы, чем потоков.
источник

СМ

Слава Мукорез... in StartAndroid Ru Chat
Привет, проблема такая, я запрашиваю данные из Firebase в Model, так как запрос к Firebase происходит асинхронно, то мой класс Model выполняется до возврата ответа из Firebase и передает в презентер пустой объект. Как наладить уведомление между Model и Presenter?
источник

V

Vladushka in StartAndroid Ru Chat
D. P.
Я написал код очень схематично.
Я уже больше 15 лет только программирую, так что тут больше непонимание явы, чем потоков.
ну я вроде все расписала)
источник

AP

Andrey Pomazkin in StartAndroid Ru Chat
D. P.
только название видел
ну тогда погугли AsynсTask, они полегче.
хотя... а твоем случае примитивных знаний rxJava хватит
источник

V

Vladushka in StartAndroid Ru Chat
Andrey Pomazkin
ну тогда погугли AsynсTask, они полегче.
хотя... а твоем случае примитивных знаний rxJava хватит
AsynсTask уже задепрекейчен
источник

AP

Andrey Pomazkin in StartAndroid Ru Chat
Vladushka
AsynсTask уже задепрекейчен
как быстро меняются тренды в век одноразовых презервативов(
источник

DP

D. P. in StartAndroid Ru Chat
В общем я уже наконец все выяснил.
Метод.класса вызывается в вызывающем потоке, а не в потоке A1.run.
Чтобы подергать методы MainActivity и вывести пользователю что-то из другого потока достаточно передать в другой поток (А1) ссыль на MainActivity.
источник

AP

Andrey Pomazkin in StartAndroid Ru Chat
может тогда сделать это на Handler'ах и Looper'ах?
источник

DP

D. P. in StartAndroid Ru Chat
И оттуда вызвать например

linktomain.textviewlink.append( text )
источник

DP

D. P. in StartAndroid Ru Chat
Andrey Pomazkin
может тогда сделать это на Handler'ах и Looper'ах?
а зачем?
источник

V

Vladushka in StartAndroid Ru Chat
Слава Мукорез
Привет, проблема такая, я запрашиваю данные из Firebase в Model, так как запрос к Firebase происходит асинхронно, то мой класс Model выполняется до возврата ответа из Firebase и передает в презентер пустой объект. Как наладить уведомление между Model и Presenter?
или заменить mvp на mvvm в связке с лайв датой, на которую ты будешь подписан и которая будет уведомляться о появлении данных
или использовать рх джаву
или использовать корутины
источник

DP

D. P. in StartAndroid Ru Chat
если работает примитивно, зачем усложнять?
источник