2012-05-07 5 views
1

я хочу тревогу в моем приложении, что каждые 10 минут отправить уведомление, даже если мое приложение близко и остановки после 2 часов я действительно это нужносигнализации в моем приложении

я хочу кого-то профессиональное в тревоге для помогите мне, пожалуйста, это мой GP я должен представить его завтра

любая помощь будет признателен

ответ

6

Я написал очень подробный ответ о том, как использовать AlarmManager. Вы можете прочитать его here.

Относительно вашего конкретного сценария. Вы можете добавить метод stopScheduling в свой планировщик, используя метод cancel():

public class TaskScheduler { 
    PendingIntent mPendingIntent; 
    AlarmManager mAlarmManager; 

    public static void startScheduling(Context context) { 
            Intent intent = new Intent(context, MyReceiver.class); 
            mPendingIntent = PendingIntent.getBroadcast(context, 0, intent, 0); 
            mAlarmManager = (AlarmManager) context.getSystemService(Context.ALARM_SERVICE); 
            mAlarmManager.setRepeating(AlarmManager.ELAPSED_REALTIME_WAKEUP, SystemClock.elapsedRealtime(), 600, pendingIntent); 
    } 

    public static void stopScheduling() { 
     mAlarmManager.cancel(mPendingIntent); 
    } 
} 

Итак, если вы хотите, чтобы остановить планирование можно вызвать этот метод.

Теперь я не знаю ни одного простого метода, который заставил бы AlarmManager остановиться через 2 часа, но вы можете написать еще один планировщик, который начнется через 2 часа, чтобы удалить первый планировщик.

Я предлагаю вам это сделать шаг за шагом. Сначала попробуйте выполнить простой будильник и сыграйте с параметрами, чтобы увидеть, как работает расписание, а затем попробуйте удалить этот сигнал. После этой работы вы легко сделаете все остальное, поскольку это всего лишь базовая задача программирования. Также прочитайте подробный ответ, который я написал here, поскольку он предоставляет всю информацию, необходимую для настройки базовой тревоги.

+0

Cool Post (link) +1 =) – Thkru

+0

, если вы извините меня, я скажу вам, что именно работает мое приложение, нажмите на кнопку первого пользователя, после чего будильник начнет через 10 минут, будильник вышлет уведомление имеет 2 кнопки, если он нажмет YES, после чего будильник закончит, если он скажет «НЕТ», сигнализация остановится, и через 2 часа будильник остановится! если вы можете помочь мне с кодом для моего дела, вы спасете мою жизнь, пожалуйста, будь моим HERO и помогите мне – Maha

+0

. Я добавил в свой ответ больше информации о том, как вы можете удалить сигнал тревоги, а также подсказку о том, как его убить через 2 часа. –

4

Читайте на AlarmManager

Here is an example

+0

спасибо за удивительный учебник, я прочитал все это, если у меня есть какие-либо вопросы в этом уроке я могу спросить вас позже? – Maha

+0

, если у вас есть конкретный вопрос о том, что у вас есть проблема с отправкой нового вопроса и включением любого соответствующего исходного кода и/или журналов ошибок в ваш вопрос. – FoamyGuy

+0

ОК, действительно спасибо – Maha

2

Как Тим и Amokrane сказал: AlarmManager является вашим другом;)

http://developer.android.com/reference/android/app/AlarmManager.html

Пример:

// get a Calendar object with current time 
Calendar cal = Calendar.getInstance(); 
// add 5 minutes to the calendar object 
cal.add(Calendar.MINUTE, 5); 
Intent intent = new Intent(ctx, AlarmReceiver.class); 
intent.putExtra("alarm_message", "O'Doyle Rules!"); 
// In reality, you would want to have a static variable for the request code instead of 192837 
PendingIntent sender = PendingIntent.getBroadcast(this, 192837, intent, PendingIntent.FLAG_UPDATE_CURRENT); 

// Get the AlarmManager service 
AlarmManager am = (AlarmManager) getSystemService(ALARM_SERVICE); 
am.set(AlarmManager.RTC_WAKEUP, cal.getTimeInMillis(), sender); 
+0

спасибо, что помогли mw, что именно этот код делает, я новичок в тревоге, поэтому, пожалуйста, объясните это – Maha

+0

, что я должен поставить вместо 192837? – Maha

+0

«192837» - это requestCode, и вы можете использовать любой ID и хотите, если хотите снова идентифицировать PendingIntent, вам снова придется использовать этот идентификатор. – Thkru

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