Android: AlarmManager не запускается

Я должен создать AlarmManager, который повторяется каждую секунду, я использую этот код

Intent in = new Intent(context,Tempo_Indietro.class);
in.putExtra("id_widget", appWidgetIds[i]);
PendingIntent pi = PendingIntent.getActivity(context, 0, in, PendingIntent.FLAG_UPDATE_CURRENT);
AlarmManager alarm = (AlarmManager)context.getSystemService(Context.ALARM_SERVICE);
alarm.setRepeating(AlarmManager.RTC_WAKEUP, System.currentTimeMillis(), 1000, pi);

но не запускается ... почему ??


person MimmoG    schedule 20.04.2012    source источник


Ответы (1)


Чтобы начать запланированное действие: вы можете использовать как:

Шаг 1: Настройка AlarmManager

    Intent intent =new Intent(context,AlarmReceiver.class);

    PendingIntent pi = PendingIntent.getBroadcast(context, 0, in, PendingIntent.FLAG_UPDATE_CURRENT);

    AlarmManager am = (AlarmManager)getSystemService(ALARM_SERVICE);
    am.setRepeating(AlarmManger.RTC_WAKEUP,System.currentTimeMillis(), 1000, pi);

Шаг 2: создание BroadcastReceiver

public class AlarmReceiver extends BroadcastReceiver {

 //override onReceive(Context, Intent) method
 @Override public void onReceive(Context context, Intent intent)
 {
 //.........
    Intent i = new Intent(context,Tempo_Indietro.class);
    i.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
    context.startActivity(i);
//..........  
 }

}

Примечание. Не забудьте включить вновь созданное действие, получатель, в файл AndroidManifest.xml.

person secretlm    schedule 21.04.2012
comment
Хорошо, но почему он не начинается с getActivity? - person MimmoG; 21.04.2012
comment
Потому что использование BroadcastReceiver - самый распространенный сценарий. Это необходимо для будильника _WAKEUP, если вы хотите, чтобы устройство надежно просыпалось при срабатывании будильника. Подробности вы можете увидеть по этой ссылке: http://stackoverflow.com/questions/6641141/start-activity-using-alarmmanager-without-broadcastreceiver - person secretlm; 21.04.2012
comment
Да, я знаю, но в другом приложении я использовал getActivity, и он работал хорошо ... возможно, в widgetprovider я не могу использовать AlarmManager с getActivity? - person MimmoG; 21.04.2012