アラームを設定する次のコードがあります
@Override
public void onCreate(Bundle savedInstance) {
super.onCreate(savedInstance);
int [] progressVals = getPackets();
displayList(progressVals, values);
setAlarm();
}
private void setAlarm(){
DatabaseHandler db = new DatabaseHandler(this);
Queue top = db.getTopQueue();
if(top != null){
String p = top.getPacket();
double timestamp = top.getTimestamp();
int qNum = top.getExNum();
Intent intent = new Intent("com.dejalearn.algorithm.AlarmReciever.class");
PendingIntent pendingIntent = PendingIntent.getBroadcast(DisplayAllActivity.this, 0, intent, PendingIntent.FLAG_UPDATE_CURRENT);
AlarmManager alarmManager = (AlarmManager)getSystemService(ALARM_SERVICE);
Calendar instance = Calendar.getInstance();
instance.add(Calendar.SECOND, 3);
alarmManager.set(AlarmManager.RTC_WAKEUP, instance.getTimeInMillis(), pendingIntent);
Toast.makeText(DisplayAllActivity.this, "Start Alarm", Toast.LENGTH_LONG).show();
Log.i("DISPLAY ALL", "ALARM SET UP");
}
}
これから、実行中の実際のアクティビティから実行しようとするアクティビティはAlarmRecieverと呼ばれ、ブロードキャストレシーバーを拡張しますが、アラームレシーバーのトーストは実行されません。
import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.Intent;
import android.util.Log;
import android.widget.Toast;
public class AlarmReciever extends BroadcastReceiver{
@Override
public void onReceive(Context context, Intent intent) {
Log.i("FOUND", "THE MESSAGE");
try{
Toast.makeText(context, "made it", Toast.LENGTH_LONG).show();
}catch(Exception e){
Toast.makeText(context, "error", Toast.LENGTH_LONG).show();
e.printStackTrace();
}
}
}
新しいトーストが実行されないのはなぜですか。複数の例を見てきましたが、何も機能していないようです。何が悪いのかわかりません。