0

目覚ましアプリを作っています。このアプリは、アラームがアクティブなとき(カレンダーによってアクティブなとき)にインテントを呼び出します。アラームやカレンダーが鳴ったら、アクティビティを呼び出したいのですがhello.class。このクラスは、カレンダーによって呼び出される保留中のインテントで言及されています。カレンダーが呼び出され、保留中のインテントを処理する必要がある場合、何も起こりません。私が間違っていることについて何か考えはありますか?

私のコードは以下のとおりです。コメントで「ABC」とラベル付けされた行はhello.class

Intent myIntent = new Intent(AndroidAlarmService.this, Hello.class); // ABC


pendingIntent = PendingIntent.getService(AndroidAlarmService.this, 0, myIntent, 0);

AlarmManager alarmManager = (AlarmManager)getSystemService(ALARM_SERVICE);

Calendar calendar = Calendar.getInstance();
calendar.setTimeInMillis(System.currentTimeMillis());

calendar.add(Calendar.SECOND, 5);
alarmManager.set(AlarmManager.RTC_WAKEUP, calendar.getTimeInMillis(), pendingIntent);
4

1 に答える 1

1

FLAG_ACTIVITY_NEW_TASKアクティビティは既存のアクティビティのコンテキスト外で起動されるため、インテントに 追加する必要があります。

ドキュメントにはそう書かれています。

追加するだけ

myIntent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);

Intent myIntent = new Intent...

そしてに変更PendingIntent.getService(...)しますPendingIntent.getActivity(...)

于 2012-06-29T16:47:31.993 に答える