アラームアプリケーションを作成しています。指定した時刻にAlarmBroadcast
が起動します。 指定時間にAlert Dialog
を追加します。BrodcastReceiverから警告ダイアログを起動できますか?
これは私が行ったことです。
public class AlarmBrodcast extends BroadcastReceiver {
@Override
public void onReceive(Context context, Intent intent) {
final AlertDialog alertDialog = new AlertDialog.Builder(context.getApplicationContext()).create();
alertDialog.setTitle("Delete Remainder");
alertDialog.setMessage("Are you sure you want to Delete this Remainder");
alertDialog.setButton(AlertDialog.BUTTON_POSITIVE, "Yes", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
alertDialog.dismiss();
}
});
alertDialog.setButton(AlertDialog.BUTTON_NEGATIVE, "No", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
alertDialog.dismiss();
}
});
alertDialog.show();
これにより、次のエラーメッセージが表示されます。
java.lang.RuntimeException:受信機 com.example.taha.alarmproject.AlarmBrodcastをインスタンス化できません: とjava.lang.ClassCastException: com.example.taha.alarmproject.AlarmBrodcastは アンドロイドにキャストすることはできません
編集 MainActivity .content.BroadcastReceiver
Intent intent = new Intent(this, AlarmBrodcast.class);
intent.putExtra("message", "Alarm Message 00001");
PendingIntent pendingIntent = PendingIntent.getBroadcast(
this.getApplicationContext(), 234324243, intent, 0);
AlarmManager alarmManager = (AlarmManager) getSystemService(ALARM_SERVICE);
/* alarmManager.set(AlarmManager.RTC_WAKEUP, cal.getTimeInMillis(), pendingIntent);*/
alarmManager.set(AlarmManager.RTC_WAKEUP, System.currentTimeMillis()
+ (i * 1000), pendingIntent);
Toast.makeText(this, "Alarm set in " + i + " seconds", Toast.LENGTH_LONG).show();
またActivity
をBrodcastReceiver
から起動しようとしましたが、それも起動しませんでした。
マニフェストに 'receiver'を追加しましたか? –
はい、私は正常にトーストメッセージを印刷することができました – Kirmani88
ブロードキャストレシーバーをインスタンス化するコードを投稿してください – Lino