在创建通知应用时。我正在从时间选择器中选择时间。代码已正确执行,但未显示通知。 活动代码(活动名称-TaskActivity):
public class TaskActivity extends AppCompatActivity{
public int notificationId = 1;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_task);
Button set = findViewById(R.id.button);
EditText editText = findViewById(R.id.list_name);
TimePicker timePicker = findViewById(R.id.timePicker);
Intent intent = new Intent(TaskActivity.this,AlarmReceiver.class);
intent.putExtra("NotificationId",notificationId);
intent.putExtra("todo",editText.getText().toString());
PendingIntent alarmIntent = PendingIntent.getBroadcast(TaskActivity.this,0,
intent, PendingIntent.FLAG_CANCEL_CURRENT);
AlarmManager alarm = (AlarmManager) getSystemService(ALARM_SERVICE);
set.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
int hour = timePicker.getCurrentHour();
int minute = timePicker.getCurrentMinute();
Calendar startTime = Calendar.getInstance();
startTime.set(Calendar.HOUR_OF_DAY, hour);
startTime.set(Calendar.MINUTE, minute);
startTime.set(Calendar.SECOND, 0);
final long alarmStartTime = startTime.getTimeInMillis();
Date time = startTime.getTime();
alarm.set(AlarmManager.RTC_WAKEUP, alarmStartTime, alarmIntent);
Toast.makeText(TaskActivity.this, "Done", Toast.LENGTH_SHORT).show();
editText.setText(String.valueOf(time));
}
});
}
}
类代码(类名称-AlarmReceiver):
public class AlarmReceiver extends BroadcastReceiver {
@Override
public void onReceive(Context context, Intent intent) {
int notificationId = intent.getIntExtra("NotificationId",0);
String message = intent.getStringExtra("todo");
Intent mainIntent = new Intent(context, TaskActivity.class);
PendingIntent contentIntent = PendingIntent.getActivity(context,0,mainIntent,0);
NotificationManager myNotificationManager =
(NotificationManager) context.getSystemService(Context.NOTIFICATION_SERVICE);
Notification.Builder builder = new Notification.Builder(context);
builder.setSmallIcon(android.R.drawable.ic_dialog_info)
.setContentTitle("Its Time!")
.setContentText(message)
.setWhen(System.currentTimeMillis())
.setAutoCancel(true)
.setContentIntent(contentIntent)
.setPriority(Notification.PRIORITY_MAX);
myNotificationManager.notify(notificationId, builder.build());
}
}
以同样的方式帮助我...