3

サービスというサービスがあります。このサービスでアラームを鳴らしたり、特定の時間 (たとえば午前 8 時) にトーストを起動したりするにはどうすればよいですか。

4

2 に答える 2

1

サービスで Calendar インスタンス オブジェクトの適切な時刻を設定します。

Calendar calendar = Calendar.getInstance();
int mYear = calendar.get(Calendar.YEAR);
int mMonth = calendar.get(Calendar.MONTH);
int mDay = calendar.get(Calendar.DAY_OF_MONTH);
int mHour = calendar.get(Calendar.HOUR_OF_DAY);

if(mHour >= 8)
    mDay++;

//set 8:00 a.m.
calendar.set(mYear, mMonth, mDay, 8, 0, 0);

次に、AlarmManager を使用してイベントを計画します。

Intent intent = new Intent(MyService.this, AlarmReceiver.class);
PendingIntent pendingIntent = PendingIntent.getBroadcast(MyService.this, 0, intent, 0);
AlarmManager alarmManager = (AlarmManager) getSystemService(ALARM_SERVICE);
alarmManager.set(AlarmManager.RTC, calendar.getTimeInMillis(), pendingIntent);

そしてあなたの AlarmReceiver クラス:

public class AlarmReceiver extends BroadcastReceiver {

    @Override
    public void onReceive(Context context, Intent intent) {
       Toast.makeText(context, "Alarm Receiver message", Toast.LENGTH_SHORT).show();
    }

マニフェスト ファイルに BraodcastReceiver を忘れずに追加してください。

<receiver android:name=".receiver.AlarmReceiver"/>

編集: onStartCommand メソッドをオーバーライドする

@Override
public int onStartCommand(Intent intent, int flags, int startId) {
    lanzarclase();
    return super.onStartCommand(intent, flags, startId);
}
于 2013-09-28T01:14:17.000 に答える