昨日、これに似た質問をしましたが、コードをかなり変更したため、別の問題が発生しています。
5 秒後にトリガーされる保留中の意図を持つアラーム マネージャーを設定するトグル ボタンがあります。私はワンショット設定でそれを持っているので、メッセージを一度表示したいです (後でこれを日付値に実装します)。
このコードでエラーは発生しませんが、トースト メッセージを表示するインテントをトリガーできないようです。
xml で「DateAlarm」クラスのアクティビティを定義した方法を次に示します。
<activity
android:name=".DateAlarm"
android:label="@string/app_name" >
<intent-filter>
<action android:name="com.example.flybase2.DateAlarm" />
<category android:name="android.intent.category.DEFAULT" />
</intent-filter>
</activity>
アラーム マネージャーを使用したトグル ボタンのトグル ボタン onClick メソッドを次に示します。
case (R.id.toggleButton1):
Integer dobMonth = setDate.getMonth();
Integer dobYear = setDate.getYear();
Integer dobDate = setDate.getDayOfMonth();
Date set;
set = new Date(dobYear - 1900, dobMonth, dobDate);
AlarmManager am = (AlarmManager) getSystemService(Context.ALARM_SERVICE);
Intent intent = new Intent(this, DateAlarm.class);
PendingIntent pendingIntent = PendingIntent.getService(this, 0, intent, PendingIntent.FLAG_ONE_SHOT);
am.set(AlarmManager.RTC_WAKEUP,System.currentTimeMillis() + (5 * 1000), pendingIntent);
break;
そして、インテントのアクションを保持する最後の「DateAlarm」クラス。
package com.example.flybase2;
import android.app.Activity;
import android.content.Context;
import android.os.Bundle;
import android.widget.Toast;
public class DateAlarm extends Activity {
Context context;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
Toast.makeText(context, "Appointment is today", Toast.LENGTH_LONG).show();
}
}