2012-04-20 3 views
0

я должен создать AlarmManager, что повторение каждые секунд, я использую этот кодAndroid: 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); 

но не начать ... почему ??

ответ

0

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

Шаг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); 
//.......... 
} 

}

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

+0

Хорошо, но почему он не начал с getActivity? – MimmoG

+0

Потому что использование BroadcastReceiver является наиболее распространенным сценарием. Это необходимо для будильников _WAKEUP, если вы хотите, чтобы устройство надежно проснулось, когда будильник погас. Подробно, вы можете увидеть эту ссылку: http://stackoverflow.com/questions/6641141/start-activity-using-alarmmanager-without-broadcastreceiver – secretlm

+0

Да, я знаю, но в другом приложении я использовал getActivity, и он работал хорошо ... возможно, в widgetprovider Я не могу использовать AlarmManager с getActivity? – MimmoG

Смежные вопросы