К сожалению, сейчас нет надежного способа получения события широковещания после установки вашего приложения, ACTION_PACKAGE_ADDED Намерение не транслируется во вновь установленный пакет.
Для получения события ACTION_BOOT_COMPLETED вам необходимо будет иметь класс приемника вещания и вашу услугу. Я также рекомендовал бы добавить ACTION_USER_PRESENT , предназначенный для перехвата этим широковещательным приемником, для этого требуется Android 1.5 (minSDK = 3), это будет вызывать Ваш широковещательный приемник, когда пользователь разблокирует свой телефон. Последнее, что вы можете сделать, чтобы сохранить работоспособность вашего сервиса без его автоматического отключения, - это вызвать Service.setForeground () в вашем сервисе onCreate, чтобы сообщить Android, что ваш сервис не должен быть остановлено, это было добавлено в основном для служб типа mp3-плеера, которые должны продолжать работать, но могут использоваться любым сервисом.
Убедитесь, что в манифесте вы добавили правильные разрешения для событий boot_complete и user_present.
Вот простой класс, который вы можете использовать в качестве приемника вещания для событий.
package com.snctln.util.WeatherStatus;
import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.Intent;
public class WeatherStatusServiceReceiver extends BroadcastReceiver
{
@Override
public void onReceive(Context context, Intent intent)
{
if(intent.getAction() != null)
{
if(intent.getAction().equals(Intent.ACTION_BOOT_COMPLETED) ||
intent.getAction().equals(Intent.ACTION_USER_PRESENT))
{
context.startService(new Intent(context, WeatherStatusService.class));
}
}
}
};
Удачи.