Гость
Форумы / Android [игнор отключен] [закрыт для гостей] / Проблема с запуском службы незапущенного приложения / 7 сообщений из 7, страница 1 из 1
24.11.2018, 19:50
    #39738017
Psolao
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проблема с запуском службы незапущенного приложения
Есть приложение, в нем IntentService. Из приложения сервис запускается.
Есть второе приложение. Сворачиваем первое , передаем Intent в IntentService и все работает.
Но есть убить первое приложение , то сервис уже не запустится.
Та же проблема с одним приложением которое использует AlarmManager или JobScheduler - если убить приложение, то сервис уже не запустится по расписанию.

Как-то можно решить эту проблему?
...
Рейтинг: 0 / 0
24.11.2018, 23:32
    #39738078
wadman
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проблема с запуском службы незапущенного приложения
Psolao,

версия андроида и производитель смартфона не имеют значения?
...
Рейтинг: 0 / 0
25.11.2018, 12:51
    #39738154
Oleg Shishkin
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проблема с запуском службы незапущенного приложения
Может поможет https://habr.com/post/341106/
...
Рейтинг: 0 / 0
25.11.2018, 14:31
    #39738174
alex55555
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проблема с запуском службы незапущенного приложения
PsolaoКак-то можно решить эту проблему?
Читаем про PendingIntent. Либо собираем монитор и из него перезапускаем.
...
Рейтинг: 0 / 0
26.11.2018, 03:12
    #39738327
Man2
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проблема с запуском службы незапущенного приложения
У вас проблны от не понимания....
...
Рейтинг: 0 / 0
29.11.2018, 11:19
    #39740264
Psolao77
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проблема с запуском службы незапущенного приложения
Meizu M2 Note android 5.1
Zebra TC510K android 6.0

Может действительно от непонимания проблема. Зебра прекрасно отрабатывает, пока на зайдешь в настройки приложения и принудительно не остановишь его. В Мейзу просто его легче убить через диспетчер.

Возможно если служба будет раз в 15 минут запускаться, и будет достаточно ресурсов, то приложение и не умрет.

Вот тестовый пример.
Код: java
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
59.
60.
61.
62.
63.
64.
65.
66.
67.
package com.steerp.steerpcontroller;

import android.app.AlarmManager;
import android.app.IntentService;
import android.app.Notification;
import android.app.PendingIntent;
import android.content.Context;
import android.content.Intent;
import android.net.ConnectivityManager;
import android.os.SystemClock;
import android.support.v4.app.NotificationCompat;
import android.support.v4.app.NotificationManagerCompat;

import java.util.concurrent.TimeUnit;

public class PollService extends IntentService {
    private static final String TAG = "PollService";

    public static Intent newIntent(Context context) {
        return new Intent(context, PollService.class);
    }

    public static void setServiceAlarm(Context context, boolean isOn) {
        Intent i = PollService.newIntent(context);
        i.setFlags(Intent.FLAG_ACTIVITY_MULTIPLE_TASK|Intent.FLAG_ACTIVITY_NEW_TASK|Intent.FLAG_ACTIVITY_EXCLUDE_FROM_RECENTS);
        PendingIntent pi = PendingIntent.getService(
                context, 0, i, 0);

        AlarmManager alarmManager = (AlarmManager)
                context.getSystemService(Context.ALARM_SERVICE);

        if (isOn) {
            long poolIntervalMs = TimeUnit.SECONDS.toMillis(QueryPreferences.getPoolingInterval(context));
                   alarmManager.setRepeating(AlarmManager.ELAPSED_REALTIME,
                    SystemClock.elapsedRealtime(), poolIntervalMs, pi);
        } else {
            alarmManager.cancel(pi);
            pi.cancel();
        }

    }

    public static boolean isServiceAlarmOn(Context context) {
        Intent i = PollService.newIntent(context);
        PendingIntent pi = PendingIntent
                .getService(context, 0, i, PendingIntent.FLAG_NO_CREATE);
        return pi != null;
    }

    public PollService() {
        super(TAG);
    }

    @Override
    protected void onHandleIntent(Intent intent) {
        Notification notification = new NotificationCompat.Builder(this)
                .setTicker("Test")
                .setSmallIcon(android.R.drawable.ic_menu_report_image)
                .setContentTitle("Test_title")
                .setContentText("Test_text")
                .setAutoCancel(true)
                .build();

        NotificationManagerCompat.from(getApplicationContext()).notify(0, notification);

    }
}
...
Рейтинг: 0 / 0
29.11.2018, 11:22
    #39740266
Psolao77
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проблема с запуском службы незапущенного приложения
Код: java
1.
QueryPreferences.getPoolingInterval(context)

- это из настроек берется интервал между запусками
...
Рейтинг: 0 / 0
Форумы / Android [игнор отключен] [закрыт для гостей] / Проблема с запуском службы незапущенного приложения / 7 сообщений из 7, страница 1 из 1
Целевая тема:
Создать новую тему:
Автор:
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]