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