Что происходит с моими классами в моем «общем проекте», когда приложение работает на Android? - PullRequest
0 голосов
/ 07 января 2020

Я пытался внедрить в свое приложение способ запуска какой-то задачи, когда приложение "закрыто" или "сломано" , я создал BroadcastReceiver для выполнения это, но я заметил кое-что, что может быть логичным. В моем приемнике Broadcast я использую классы из моего общего проекта или PCL, но когда приложение не работает, я заметил, что единственный класс, который все еще существует, это BroadcastReceiver, поэтому, когда я вызываю класс, который находится в моем общем проекте в моем широковещательная передача выдает мне ошибку, я пришел к выводу, что из-за того, что мое приложение не было прервано, выполнение вызова классов общего проекта в порядке, но когда прервано ... нет, у меня есть два вопроса для этой проблемы: 1 ) Верна ли моя теория? 2) Если все правильно (или нет), как я могу вызвать из моих классов BroadcastReceiver, которые есть в моем общем проекте, когда приложение сломано ?

Вот пример моего кода:

//Android

override void OnReceive(...)//BroadcastReceiver main method
{
     ...
     MyClass myCls = new MyClass();//Class from shared project
}

Когда я выполняю это, когда приложение все еще используется, но когда оно прерывается, приложение останавливается и показывает следующее типичное android всплывающее окно:

“MyAplication.Drioid has stopped”

1 Ответ

0 голосов
/ 08 января 2020

Вы хотите, чтобы ваше приложение снова перезапустилось после того, как приложение closed? Если да, для android вы можете попытаться использовать service для достижения этой цели.

Когда служба работает в фоновом режиме, вы можете попытаться перезапустить ее с помощью BroadcastReceiver, который будет получать сигнал, когда кто-то или что-то убивает службу, его роль заключается в перезапуске службы.

Для более подробной информации, вы можете обратиться к: https://fabcirablog.weebly.com/blog/creating-a-never-ending-background-service-in-android

Примечание : Несмотря на то, что это код Java, его легко понять и преобразовать.

Для формы xamarin, поскольку каждая платформа имеет свой собственный путь и правила для фоновых сервисов. Вы должны предоставлять услуги для каждой платформы.

Вы можете обратиться к этому документу: Фоновые задачи Xamarin

...