我正在尝试创建一个将在指定时间打开另一个应用程序的应用程序。为此,我使用了启动服务的 AlarmManager。如果我的应用程序在触发警报时打开,它就可以正常工作。我收到服务启动的通知,并且另一个应用程序打开。但是,如果我的应用程序在后台(按主页按钮后),并且警报触发,我会收到服务已启动的通知,但其他应用程序不会启动。我究竟做错了什么?我正在运行 API 级别 29 (Android 10/Q) 的 Pixel 3 模拟器上对此进行测试。
public class MainActivity extends AppCompatActivity {
public static final int REQUEST_CODE=101;
public static int aHour;
public static int aMinute;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
}
public void setAlarm() {
AlarmManager am = (AlarmManager) getSystemService(ALARM_SERVICE);
Intent intent = new Intent(this, amReceiver.class);
PendingIntent pendingIntent = PendingIntent.getBroadcast(this, REQUEST_CODE, intent, PendingIntent.FLAG_UPDATE_CURRENT);
Calendar calendar = Calendar.getInstance();
calendar.setTimeInMillis(System.currentTimeMillis());
calendar.set(Calendar.HOUR_OF_DAY, aHour);
calendar.set(Calendar.MINUTE, aMinute);
am.setExactAndAllowWhileIdle(AlarmManager.RTC_WAKEUP, calendar.getTimeInMillis(), pendingIntent);
}
//Some code that sets aHour …Run Code Online (Sandbox Code Playgroud)