
Max
13.07.2018
12:19:18
у XF один активити, если оно есть (и отображается), мне надо спрятать вьюху с сервиса

vladimir
13.07.2018
12:19:46
всмысле, какой-то messenger используется, что нужно знать о отправителе?

Max
13.07.2018
12:19:58

Google

vladimir
13.07.2018
12:20:03
при подписке и отписке мы не знаем, кто отправитель

Max
13.07.2018
12:20:34
потому что активити уже была задеструкчена?

vladimir
13.07.2018
12:20:49
и где этот код?
в сервисе что ли?

Max
13.07.2018
12:21:03
да, я понял надо его перенести в активити

vladimir
13.07.2018
12:21:18
удоли

Max
13.07.2018
12:21:21
и оттуда уже дергать сервис, если он существует

Кита
13.07.2018
12:21:48

vladimir
13.07.2018
12:22:17
общайся с сервисом через https://developer.android.com/guide/components/bound-services

Max
13.07.2018
12:23:55

Кита
13.07.2018
12:24:24

vladimir
13.07.2018
12:25:11
оно не нужно всё, если всё делать из MainActivity OnResume/OnPause

Google

Кита
13.07.2018
12:26:20
Вообще статический контекст конечно нужен, но завязываться на него имеет смысл только в презентерах или на уровне View, а в OnResume/OnPause нужно пробрасывать события вообще по всему стэку страниц и всему стэку вьмоделей, чтобы они знали о LC

Николай
13.07.2018
12:30:11
Ребят привет. Посовейтуте решения (паттерны) на базе примеров Xamarin Forms по «компонентной» загрузке. То есть инициировать все страницы и компоненты не при старте приложения а при необходимости. Цель - скорость запуска. Хочу эти архитектурные знания закладывать изначально при создании апа.

Max
13.07.2018
12:30:55

Николай
13.07.2018
12:31:09
пока мне это непонятный набор слов )
ну буду гуглить
спасиб
а может встрчал какие практичные решения?

Max
13.07.2018
12:31:58

Николай
13.07.2018
12:32:19
а ну хотя я начал гуглит
норм ответов
буду исследовать
спасиб за наводку

Max
13.07.2018
12:33:28
скорость загрузки будет если юзать LazyInstance
ну типо по требованию, а не все сразу создавать
навигацию запилите с Resolve самих страниц и их ViewModel
можно через конструктор
не знаю, насколько это правильно или неправильно. Но работает не плохо

Николай
13.07.2018
12:35:53
?

Max
13.07.2018
12:35:58
в Binwell юзают что-то подобное, только без IoC контейнера, завязанном на авторегистрации по имени View и ViewModels

Google

Max
13.07.2018
12:36:32

Николай
13.07.2018
12:37:07
гуд

Max
13.07.2018
12:37:47
страница 96, часть 1, глава 3

Кита
13.07.2018
12:38:11

Max
13.07.2018
12:38:28
там через рефлексию бахают
я так и не понел почему они так делают, но видимо у Славы зуб на IoC
работает не трогай

Кита
13.07.2018
12:43:41

Max
13.07.2018
12:44:13

Кита
13.07.2018
12:44:41
ну тебе в параметрах приходит инстанс Activity - сэтай в статическую проперти плагина и на этом все

Max
13.07.2018
12:46:49

Кита
13.07.2018
12:47:00

Max
13.07.2018
12:48:26
в 3
ок. А как мне дергать правильно изменение состояния нативного сервиса, в зависимости от состояний активити?
Нормально сделать в сервисе публичное событие и вызывать его в этих методах?

Кита
13.07.2018
12:51:06

Max
13.07.2018
12:52:38

Кита
13.07.2018
12:53:35

Max
13.07.2018
12:53:52

Google

Кита
13.07.2018
12:54:18

Max
13.07.2018
12:54:36
потому что я там подписываюсь на событие на одной активити, но ее может и не быть
он сам по себе работает

Кита
13.07.2018
12:55:20
а, все понял проблему
ну вроде можно взять и все подписки перенести из старой активити в новую

Max
13.07.2018
12:58:18
просто мейби он там сам как-то это дело решает

Admin
ERROR: S client not available

Max
13.07.2018
12:59:00
с переносом событий
я за это спрашивал

Кита
13.07.2018
12:59:22
нет, видимо не решает. Я не знаю. Надо исходники смотреть

Max
13.07.2018
12:59:29

Nikolai
13.07.2018
14:03:39
Когда мне начинает казаться, что я уже видел все самые нелепые баги замарина, он мне выдаёт что-то вроде:
System.IO.FileNotFoundException: Could not load file or assembly 'netstandard, Version=2.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51' or one of its dependencies.

vladimir
13.07.2018
14:05:15
кому не лень, сфотошопьте картинку с покемонами Catch them all на
Xamarin Exceptions: Catch them all

Kiparin
13.07.2018
14:07:24

Code Writer
13.07.2018
14:58:22
Кстати, про эксепшены мне тут Java.Lang.NullPointerException прилетает в аутпут и приложение ложится
Никакой больше инфы нет

Google

Nikolai
13.07.2018
15:00:07

vladimir
13.07.2018
15:00:29
хахаха
спасибо, вы сделали мой день

Code Writer
13.07.2018
15:04:56


Андрей Родионович
13.07.2018
15:25:28
Всем привет, не подскажите в чем трабл и как его решить?
Есть сarouselView
<controls:CarouselViewControl x:Name="Carousel" IsSwipeEnabled=" True"ShowIndicators=" True" Position="1" >
<controls:CarouselViewControl.ItemsSource>
<x:Array Type="{x:Type View}">
<ScrollView>
<RelativeLayout x:Name="Numbers" >
<Button x:Name="Seven_Button" />
<Button x:Name="Eight_Button" />
<Button x:Name="Four_Button" />
<Button x:Name="Five_Button" />
<Button x:Name="Six_Button" />
<Button x:Name="One_Button" />
<Button x:Name="Two_Button" />
<Button x:Name="Three_Button" />
<Button x:Name="Zero_Button" />
<Button x:Name="Comma_Button" />
</RelativeLayout>
</ScrollView>
<ScrollView>
<RelativeLayout>
</RelativeLayout>
</ScrollView>
<ScrollView>
<RelativeLayout BackgroundColor="Green">
</RelativeLayout>
</ScrollView>
<ScrollView>
<RelativeLayout BackgroundColor="Red">
</RelativeLayout>
</ScrollView>
</x:Array>
</controls:CarouselViewControl.ItemsSource>
</controls:CarouselViewControl>
Этот код работает нормально, но если добавить события clicked для кнопок, то сразу выдает такую ошибку "среда выполнения Common Language Runtime обнаружила недопустимую программу. "
Хочу просто всунуть в карусель пару layout с кнопками


Kirill
13.07.2018
15:49:41
Сейчас придет Кирилл и начнется схватка)
Ок)
Так то тоже думал что эта логика тормозит, однако после проверки - вся логика инициализации занимает не более пары десятков миллисекунд. Думаю такая огромная задержка очень сильно влияет на скорость запуска *сарказм*

Кита
13.07.2018
15:51:07
ты просто не правильно мерил

Max
13.07.2018
15:51:10
вопрос работает ли это на IOS остается открытым
???
хотя, там вроде нельзя код генерить в рантайме, а вот это вот все можно

Кита
13.07.2018
15:53:11
что значит код нельзя в рантайме генерить
есть ILGenerator. Он в процессе AOT компилится вместе с mono и работает так как и задумывался. Можно создавать инстансы типов

Kirill
13.07.2018
15:55:41

Кита
13.07.2018
15:57:11
А как правильно?
надо начиная от создания Application класса смотреть и замерять все периоды от создания активити её старта инстанциации формсов итд. Сыпать измерения в logcat. В logcat искать момент посыла команды на запуск твоего приложения и смотреть разницу по времени с моментом создания Application класса. Это будет время запуска mono

Max
13.07.2018
15:57:46
такое можно?

Кита
13.07.2018
16:01:32
хм, не вдавался в такие подробности

Max
13.07.2018
16:01:51
на ведре работает