如何解决如何创建将出现在特定日期和时间的本地推送通知 - Android Studio
我正在尝试创建一个本地推送通知,该通知将出现在我将预设的特定日期和时间。我做了一些编码,但只有当我将时间设置在 24 小时内,但是当我尝试添加年和月时,它才有效!它在那个时候不起作用。那里的任何人都可以帮助我解决这个问题。 - 谢谢
这是我所做的代码 - 主要活动
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
Intent intent = new Intent(MainActivity.this,AlarmBroadCustReciver.class);
intent.putExtra("notificationId",1);
// intent.putExtra("message",editText.getText().toString());
intent.putExtra("message","this the test message");
// PendingIntent
PendingIntent pendingIntent = PendingIntent.getBroadcast(
MainActivity.this,intent,PendingIntent.FLAG_CANCEL_CURRENT
);
// AlarmManager
AlarmManager alarmManager = (AlarmManager) getSystemService(ALARM_SERVICE);
Calendar cal = Calendar.getInstance();
cal.setTimeInMillis(System.currentTimeMillis());
cal.clear();
cal.set(2021,2,7,29,0);
long customtime = cal.getTimeInMillis();
alarmManager.set(AlarmManager.RTC_WAKEUP,customtime,pendingIntent);
Toast.makeText(this,"Done!",Toast.LENGTH_SHORT).show();
}
这是我的AlarmBroadCustReciver
public class AlarmBroadCustReciver extends BroadcastReceiver {
private static final String CHANNEL_ID = "CHANNEL_SAMPLE";
@Override
public void onReceive(Context context,Intent intent) {
Log.d("TAG","onReceive: called");
// Get id & message
int notificationId = intent.getIntExtra("notificationId",0);
String message = intent.getStringExtra("message");
// Call MainActivity when notification is tapped.
Intent mainIntent = new Intent(context,MainActivity.class);
PendingIntent contentIntent = PendingIntent.getActivity(context,mainIntent,0);
// NotificationManager
NotificationManager notificationManager =
(NotificationManager) context.getSystemService(Context.NOTIFICATION_SERVICE);
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {
// For API 26 and above
CharSequence channelName = "My Notification";
int importance = NotificationManager.IMPORTANCE_DEFAULT;
NotificationChannel channel = new NotificationChannel(CHANNEL_ID,channelName,importance);
notificationManager.createNotificationChannel(channel);
}
// Prepare Notification
NotificationCompat.Builder builder = new NotificationCompat.Builder(context,CHANNEL_ID)
.setSmallIcon(android.R.drawable.ic_dialog_info)
.setContentTitle("TITLE")
.setContentText(message)
.setContentIntent(contentIntent)
.setPriority(NotificationCompat.PRIORITY_DEFAULT)
.setAutoCancel(true);
// Notify
notificationManager.notify(notificationId,builder.build());
}
}
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。