fsdb Опубликовано 26 марта, 2016 Поделиться Опубликовано 26 марта, 2016 (изменено) Не знал в какой раздел задать вопрос. поэтому тут. мне нужно что бы мой сервис стартовал каждые 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); // Обычный запуск сервиса } } } Изменено 26 марта, 2016 пользователем fsdb Цитата Ссылка на комментарий
1 umkes Опубликовано 28 марта, 2016 Поделиться Опубликовано 28 марта, 2016 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> Rusland и Pax Beach 2 Цитата Ссылка на комментарий
0 fsdb Опубликовано 29 марта, 2016 Автор Поделиться Опубликовано 29 марта, 2016 setClassName не было. закрыто Цитата Ссылка на комментарий
Вопрос
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); // Обычный запуск сервиса } } }
Ссылка на комментарий
2 ответа на этот вопрос
Рекомендуемые сообщения
Присоединяйтесь к обсуждению
Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.