通知应用未显示通知

时间:2020-11-05 18:21:41

标签: android android-studio android-notifications

在创建通知应用时。我正在从时间选择器中选择时间。代码已正确执行,但未显示通知。 活动代码(活动名称-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());
    }
}

以同样的方式帮助我...

0 个答案:

没有答案