要解决AlarmManager在指定的时间没有显示toast消息的问题,你可以使用以下代码示例来实现:
public class AlarmReceiver extends BroadcastReceiver {
@Override
public void onReceive(Context context, Intent intent) {
// 显示toast消息
Toast.makeText(context, "AlarmManager触发了", Toast.LENGTH_SHORT).show();
}
}
public class MainActivity extends AppCompatActivity {
private static final int ALARM_REQUEST_CODE = 1;
private AlarmManager alarmManager;
private PendingIntent alarmIntent;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
// 创建广播接收器的意图
Intent intent = new Intent(this, AlarmReceiver.class);
alarmIntent = PendingIntent.getBroadcast(this, ALARM_REQUEST_CODE, intent, 0);
// 获取AlarmManager实例
alarmManager = (AlarmManager) getSystemService(Context.ALARM_SERVICE);
// 设置触发时间为5秒后
long triggerTime = System.currentTimeMillis() + 5000;
// 设置AlarmManager
alarmManager.set(AlarmManager.RTC_WAKEUP, triggerTime, alarmIntent);
}
}
确保你已经在Manifest文件中注册了AlarmReceiver类:
这样,当AlarmManager触发时,你将会收到一个toast消息。