спасибо. я думал что из BroadcastReceiver нельзя установить задачу на запуск . это хорошее решение на мой взгляд... буду пробовать!!!
to Andrey Efimov: Спасибо, извиняюсь, сообщения лишние удалил
Update:
Короче вот рабочий код - нормальный автозапуск отложенный!!! мое приложение больше не закрывает ОС и все работает отлично!!!!
Отредактировано:
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/run_app.txt");
//файл - при наличии которого выполняется автозапуск
if(f.exists()){
Calendar calendar = Calendar.getInstance();
calendar.setTimeInMillis(System.currentTimeMillis());
calendar.add(Calendar.SECOND, 30);
//PendingIntent pi = PendingIntent.getBroadcast(context, 0, TestLauncher, 0);
//AlarmManager manager = (AlarmManager) context.getSystemService(Context.ALARM_SERVICE);
//manager.set(AlarmManager.RTC_WAKEUP, calendar.getTimeInMillis(), pi);
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);
}
else
{
TestLauncher.setClassName(context, "com.embarcadero.services.PanelControlService");
context.startService(TestLauncher);
}
}
}
}