Тревога в течение определенного времени приложения для Android - PullRequest
0 голосов
/ 11 марта 2012

Может кто-нибудь сообщить мне, как я могу создать будильник в приложении для Android, который запускается с текущего времени и будет повторяться каждые 10 минут в течение определенного времени?

Например, в зависимости от разных случаев, время, которое будильник должен повторить, составляет 2 часа, в другом случае это может быть только 1:30 час и т. Д.

Есть ли способсделай это?

На самом деле я использовал код, взятый из Интернета, как показано ниже:

открытый класс MyAlarmService extends Service {

@Override
    public void onCreate() {

        // TODO Auto-generated method stub

    }

    @Override
    public IBinder onBind(Intent intent) {

        // TODO Auto-generated method stub

        Toast.makeText(this, "MyAlarmService.onBind()", Toast.LENGTH_LONG)
                .show();

        return null;

    }

    @Override
    public void onDestroy() {

        // TODO Auto-generated method stub

        super.onDestroy();

        Toast.makeText(this, "MyAlarmService.onDestroy()", Toast.LENGTH_LONG)
                .show();

    }

    @Override
    public void onStart(Intent intent, int startId) {

        // TODO Auto-generated method stub

        super.onStart(intent, startId);

        Toast.makeText(this, "...", Toast.LENGTH_LONG)
        .show();

    }

    @Override
    public boolean onUnbind(Intent intent) {

        // TODO Auto-generated method stub

        Toast.makeText(this, "MyAlarmService.onUnbind()", Toast.LENGTH_LONG)
                .show();

        return super.onUnbind(intent);

    }

}

1 Ответ

0 голосов
/ 11 марта 2012

Вы можете использовать BroadcastReceiver и PendingIntent. Сначала вы объявляете BroadcastReceiver:

public class EventAlarmReceiver extends BroadcastReceiver {

private long alarmTime;

@Override
public void onReceive(Context context, Intent intent1) {

    //declare the new time for the alarm, you can use a time stamp, for example in the next hour
    alarmTime = Calendar.getInstance().getTimeInMillis()+(60*60000); 

            //set an intent to the Receiver
    Intent intent = new Intent(context, EventAlarmReceiver.class);

             //set an PendingIntent to the Intent
    PendingIntent pendingIntent = PendingIntent.getBroadcast(
                getApplicationContext(), 234324243, intent, 0);

            //add to the System Alarm Manager
    AlarmManager alarmManager = (AlarmManager) getSystemService(Activity.ALARM_SERVICE);
    alarmManager.set(AlarmManager.RTC, alarmTime, pendingIntent);
}

}

и запустить тревогу в Деятельности:

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

        PendingIntent pendingIntent = PendingIntent.getBroadcast(
                getApplicationContext(), 234324243, intent, 0);

        AlarmManager alarmManager = (AlarmManager)   getSystemService(Activity.ALARM_SERVICE);
        alarmManager.set(AlarmManager.RTC, time, pendingIntent);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...