153 / 143 / 33
Регистрация: 05.03.2013
Сообщений: 783
1

Автозапуск приложения

10.10.2017, 12:40. Показов 2823. Ответов 8
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Как собственно приложение сделать автозапускаемым?
Тега <action android:name="android.intent.action.BOOT_COMPLETED" /> недостаточно.
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
10.10.2017, 12:40
Ответы с готовыми решениями:

Автозапуск приложения
Как сделать автозапуск приложения при включение телефона?

Автозапуск приложения
Доброго времени суток возможно пишу не в той категории форума но привык уже тут перенесите если не...

Автозапуск приложения
Автозапуск не срабатывает.. Android 4.1.2 Android 5.0.2 &lt;?xml version=&quot;1.0&quot;...

Автозапуск приложения
Всем привет! В общем собираюсь написать приложение, которое будет работать и под Windows и под...

8
.NET C#,ASP.NET MVC
Эксперт .NET
594 / 507 / 224
Регистрация: 16.10.2010
Сообщений: 1,902
11.10.2017, 11:44 2
Цитата Сообщение от Козадоев Посмотреть сообщение
недостаточно
Достаточно. Вопрос только в том правильно ли вы его хендлите.

К то муже необходимо получить право доступа
<uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED" />

И все, если правильно создали ресивер то, сможете нормально лвоить екшн
0
153 / 143 / 33
Регистрация: 05.03.2013
Сообщений: 783
11.10.2017, 12:18  [ТС] 3
Цитата Сообщение от lvlkoo Посмотреть сообщение
Достаточно. Вопрос только в том правильно ли вы его хендлите.
Наверное не правильно.
Можете привести пример?

Приложение имеет public class MainActivity - где располагается основной код и где есть
protected override void OnCreate, где происходит инициализация, запуск видимой формы. Если запустить приложение как обычно - все работает ка надо.
Но нужно чтобы приложение фоном запускалось без видимой формы после включения устройства.
0
.NET C#,ASP.NET MVC
Эксперт .NET
594 / 507 / 224
Регистрация: 16.10.2010
Сообщений: 1,902
11.10.2017, 14:37 4
Ну тогда вам вообще не активити нужна а сервис.

Почитай о сервисах в андроид.

Для того чтобы запустить свой сервис при старте устройства необходимо создать BroadcastReceiver (подтип сервиса), который уже будет запускать ваш основной сервис

C#
1
2
3
4
5
6
7
8
9
BroadcastReceiver(Enabled = true)]
[IntentFilter(new[] { Android.Content.Intent.ActionBootCompleted })]
public class MyBootReceiver : BroadcastReceiver
{
    public override void OnReceive(Context context, Intent intent)
    {
        // start service here
    }
}
1
153 / 143 / 33
Регистрация: 05.03.2013
Сообщений: 783
11.10.2017, 14:59  [ТС] 5
Цитата Сообщение от lvlkoo Посмотреть сообщение
Ну тогда вам вообще не активити нужна а сервис.
А можно ли создать одно приложение как активити и как сервис? Так, чтобы при старте работал невидимый сервис, а по клику ярлыка открывалась видимая часть?
0
.NET C#,ASP.NET MVC
Эксперт .NET
594 / 507 / 224
Регистрация: 16.10.2010
Сообщений: 1,902
11.10.2017, 15:04 6
Цитата Сообщение от Козадоев Посмотреть сообщение
А можно ли создать одно приложение как активити и как сервис? Так, чтобы при старте работал невидимый сервис, а по клику ярлыка открывалась видимая часть?
Да. Они работают не зависимо.
1
153 / 143 / 33
Регистрация: 05.03.2013
Сообщений: 783
11.10.2017, 17:09  [ТС] 7
Пытаюсь запустить службу так:
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
   [BroadcastReceiver]
        [IntentFilter(new[] { Intent.ActionBootCompleted })]
        class BootCompletedBroadcastMessageReceiver : BroadcastReceiver
        {
 public override void OnReceive(Context context, Intent intent)
            {
                if (intent.Action == Intent.ActionBootCompleted)
                {
 
                //Доходит до этой строки и вылетает
 
 
               Intent MyIntent = new Intent(context, typeof(MyService));
                context.StartService(MyIntent);
             }
       }
Служба объявлена так:
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
 [Service]
    public class MyService : Service
    {
        public override void OnCreate()
        {
        base.OnCreate();
        }
 
        public override IBinder OnBind(Intent intent)
        {
           
            return null;
        }
 
        public override StartCommandResult OnStartCommand(Intent intent, StartCommandFlags flags, int startId)
        {
         //какой- то код приложения
         }
    }
После запуска системы выполняется начальный код, но служба не запускается, вылетает приложение, что не так?
0
.NET C#,ASP.NET MVC
Эксперт .NET
594 / 507 / 224
Регистрация: 16.10.2010
Сообщений: 1,902
11.10.2017, 17:14 8
Стак трейс дайте, с виду код правильный
1
153 / 143 / 33
Регистрация: 05.03.2013
Сообщений: 783
12.10.2017, 16:56  [ТС] 9
Спасибо, нашел ошибку в коде, кода запустил сервис из protected override void OnCreate активити и прогнал в отладчике.
Что получилось: Сервис отлично запускается и работает при включении устройства без видимой формы, его нельзя смахнуть.
Сервис также запускается при первом открытии приложения после установки. Но сервис завершается вместе с закрытием видимой формы активити.
Вопрос: как его запустить при первом запуске активити, чтобы при закрытии активити сервис продолжал работать?

Добавлено через 2 часа 3 минуты
Оказалось просто.
Нужно было указать в методе OnStartCommand
C#
1
return StartCommandResult.Sticky;
и служба становится "залипшей", не зависящей от Activity.

Добавлено через 12 минут
Заметил особенность: если закрыть Activity служба выключается и через несколько сек. снова включается уже без Activity. Но можно ли сделать так, чтобы служба оставалась работать бесшовно, непрерывно при закрытии Activity?
0
12.10.2017, 16:56
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
12.10.2017, 16:56
Помогаю со студенческими работами здесь

Автозапуск приложения
Нужно при запуске системы запустить приложение, пользуюсь таким кодом, но не прокатывает, возможно ...

Копирование и автозапуск приложения
Нужно приложение при открытии которого: 1)из папки с ним копируются все .exe 2)после копии всех...

Разный автозапуск приложения
Ситуация такая: Запускаю приложение, работаю с ним, при этом оно прописывается его автозапуск....

Добавление приложения в автозапуск из терминала
Всем привет! Как добавить приложение в &quot;Запускаемые приложения&quot; из терминала? И возможно ли...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
9
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru