Chào mọi người em có 2 class
MainActivity
package com.example.reminder;
import androidx.appcompat.app.AppCompatActivity;
import android.app.AlarmManager;
import android.app.PendingIntent;
import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.TextView;
import android.widget.TimePicker;
import java.util.Calendar;
public class MainActivity extends AppCompatActivity {
Calendar calendar;
TimePicker timePicker;
PendingIntent pendingIntent;
AlarmManager alarmManager;
Button btnSetTime;
TextView textView;
EditText editText;
public static final String CONTENT = "CONTENT";
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
btnSetTime = findViewById(R.id.btnSetTime);
textView = findViewById(R.id.textView);
editText = findViewById(R.id.editText);
calendar = Calendar.getInstance();
alarmManager = (AlarmManager) getSystemService(ALARM_SERVICE);
timePicker = findViewById(R.id.timePicker);
btnSetTime.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Intent intent = new Intent(MainActivity.this, Alarm.class);
calendar.set(Calendar.HOUR_OF_DAY, timePicker.getCurrentHour());
calendar.set(Calendar.MINUTE, timePicker.getCurrentMinute());
String contentText = editText.getText().toString();
intent.putExtra(CONTENT, contentText);
sendBroadcast(intent);
int gio = timePicker.getCurrentHour();
int phut = timePicker.getCurrentMinute();
textView.setText("Gio ban dat la " + gio + " :" + phut);
pendingIntent = PendingIntent.getBroadcast(MainActivity.this, 0, intent, PendingIntent.FLAG_UPDATE_CURRENT);
alarmManager.set(AlarmManager.RTC_WAKEUP, calendar.getTimeInMillis(), pendingIntent);
}
});
}
}
và class Alarm
package com.example.reminder;
import android.app.NotificationChannel;
import android.app.NotificationManager;
import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.Intent;
import android.os.Build;
import androidx.core.app.NotificationCompat;
public class Alarm extends BroadcastReceiver {
public static final String CHANNEL_1_ID = "channel1";
public static final String CHANNEL_2_ID = "channel2";
@Override
public void onReceive(Context context, Intent intent) {
String action = intent.getAction();
String getContent = intent.getStringExtra(MainActivity.CONTENT);
creatNotificationChannel(context);
creatNotification(getContent, context);
}
private void creatNotificationChannel(Context context) {
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {
NotificationChannel channel1 = new NotificationChannel(
CHANNEL_1_ID,
"Channel 1",
NotificationManager.IMPORTANCE_HIGH
);
channel1.setDescription("This is channel 1");
NotificationChannel channel2 = new NotificationChannel(
CHANNEL_2_ID,
"Channel 2",
NotificationManager.IMPORTANCE_LOW
);
channel1.setDescription("This is channel 2");
NotificationManager manager = context.getSystemService(NotificationManager.class);
manager.createNotificationChannel(channel1);
manager.createNotificationChannel(channel2);
}
}
private void creatNotification(String s, Context context){
NotificationCompat.Builder builder = new NotificationCompat.Builder(context, CHANNEL_1_ID)
.setSmallIcon(R.drawable.ic_launcher_background)
.setContentTitle("Hello")
.setContentText(s)
.setPriority(NotificationCompat.PRIORITY_DEFAULT);
NotificationManager notificationManager = (NotificationManager) context.getSystemService(Context.NOTIFICATION_SERVICE);
notificationManager.notify(0, builder.build());
}
}
Em muốn gửi cái dữ liệu ở cái EditText nhập vào ở class MainActivity và gắn cái dữ liệu mình nhập đó vào nội dung thông báo ở class Alarm nhưng mà nó lại bị cái là khi em ấn vào button btnSetTime để hẹn giờ hiển thị thông báo thì nó hiển thị luôn thông báo mà không đợi đến khi đến đúng giờ mình hẹn nó mới hiện ạ.Có ai giúp em vấn đề này với không ạ?