Перейти к содержанию
Fire Monkey от А до Я
  • 0

мне нужно что бы мой сервис стартовал каждые 10 секунд.


fsdb

Вопрос

Не знал в какой раздел задать вопрос. поэтому тут.

мне нужно что бы мой сервис стартовал каждые 10 секунд. прошу помочь исправить вот эту часть:

    Intent restartIntent = context.getPackageManager().getLaunchIntentForPackage(context.getPackageName());
    PendingIntent intent1 = PendingIntent.getService(context, 0,restartIntent, 0);
    AlarmManager manager = (AlarmManager) context.getSystemService(Context.ALARM_SERVICE);
    manager.setRepeating(AlarmManager.RTC_WAKEUP, System.currentTimeMillis(),10*1000,intent1);

привожу общий код, все остальное в нем работает кроме участка что выше:

package com.PanelControlReceiver;
 
import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.Intent;
 
import java.text.Format;
import java.text.SimpleDateFormat;
import java.util.Date;
 
import android.app.AlarmManager;
import android.app.PendingIntent;
import android.os.Bundle;
import android.os.PowerManager;
import android.widget.Toast;
import java.util.Calendar;
import java.util.*;
import java.text.DateFormat;
import java.text.SimpleDateFormat;
import java.util.Calendar;
 
import java.io.File;
 
public class BootCompletedReceiver extends BroadcastReceiver {
 
 public void onReceive(Context context, Intent intent) {
 
  if (intent.getAction().equals(Intent.ACTION_BOOT_COMPLETED)) {
 
 Intent TestLauncher = new Intent();
//создаем класс
 
 File f = new File("/sdcard/Android/data/com.embarcadero.PanelControl/files/ehs_setting/profile/working/autorun_app.txt");
//файл - при наличии которого выполняется автозапуск
 
 if(f.exists()){
 
 
Calendar calendar = Calendar.getInstance();
calendar.setTimeInMillis(System.currentTimeMillis());
calendar.add(Calendar.SECOND, 30);
 
 
 
 
 
 
 
 
             Intent restartIntent = context.getPackageManager().getLaunchIntentForPackage(context.getPackageName());
    PendingIntent intent1 = PendingIntent.getActivity(context, 0,restartIntent, PendingIntent.FLAG_UPDATE_CURRENT);
    AlarmManager manager = (AlarmManager) context.getSystemService(Context.ALARM_SERVICE);
    manager.set(AlarmManager.RTC, System.currentTimeMillis() + 30000, intent1);
 
 
 
//TestLauncher.setClassName(context, "com.embarcadero.firemonkey.FMXNativeActivity");
 //  TestLauncher.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
 //  context.startActivity(TestLauncher);
//запуск приложения
 
}
 
 
 
 
 
 
    Intent restartIntent = context.getPackageManager().getLaunchIntentForPackage(context.getPackageName());
    PendingIntent intent1 = PendingIntent.getService(context, 0,restartIntent, 0);
    AlarmManager manager = (AlarmManager) context.getSystemService(Context.ALARM_SERVICE);
    manager.setRepeating(AlarmManager.RTC_WAKEUP, System.currentTimeMillis(),10*1000,intent1);
 
 
 
 
 
 
 
 
 
 
 
 // TestLauncher.setClassName(context, "com.embarcadero.services.PanelControlService");
 // context.startService(TestLauncher);
 // Обычный запуск сервиса
 
 
 
  }
 
 
 }
 
}

 

Изменено пользователем fsdb
Ссылка на комментарий

Рекомендуемые сообщения

  • 1
package com.TestReceiver;

import android.app.AlarmManager;
import android.app.PendingIntent;
import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.Intent;
import android.widget.Toast;

public class BootCompletedReceiver extends BroadcastReceiver {

    public void onReceive(Context context, Intent intent) {

        String action = intent.getAction();
        
        if (action != null)
            if (
                    action.equalsIgnoreCase(Intent.ACTION_BOOT_COMPLETED)
                 || action.equalsIgnoreCase("com.TestReceiver.BootCompletedCustomIntent")
                )
            {
                Intent TestLauncher = new Intent();
                TestLauncher.setClassName(context, "com.TestReceiver.BootCompletedReceiver");
                TestLauncher.setAction("com.TestReceiver.StartServiceIntent");

                PendingIntent pintent = PendingIntent.getBroadcast(context, 0, TestLauncher, 0);
                AlarmManager alarm = (AlarmManager) context.getSystemService(Context.ALARM_SERVICE);
                alarm.setRepeating(AlarmManager.RTC_WAKEUP, System.currentTimeMillis(), 5000, pintent);
            }
            else if (action.equalsIgnoreCase("com.TestReceiver.StartServiceIntent"))
            {
                Intent TestLauncher = new Intent();
                TestLauncher.setClassName(context, "com.embarcadero.services.myService");
                context.startService(TestLauncher);
            }

    }
}

Вот пример 1 из моих сервисов. Сначала стартует аларм менеджер, который сюда же шлет интенты на старт сервиса "myService".

В манифесте в ресиверах прописаны эти интенты

		<receiver android:name="com.TestReceiver.BootCompletedReceiver" android:enabled="true">
            <intent-filter>
                 <action android:name="android.intent.action.BOOT_COMPLETED" />
				 <action android:name="com.TestReceiver.BootCompletedReceiver" />
                 <action android:name="com.TestReceiver.BootCompletedCustomIntent" />
				 <action android:name="com.TestReceiver.StartServiceIntent" />
            </intent-filter>
        </receiver>

 

Ссылка на комментарий

Присоединяйтесь к обсуждению

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

Гость
Ответить на вопрос...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

  • Последние посетители   0 пользователей онлайн

    • Ни одного зарегистрированного пользователя не просматривает данную страницу
×
×
  • Создать...