我有一个带AlarmManager的Android服务来安排任务。就我而言,我的应用程序将在指定时间播放音乐。该应用程序在屏幕上或在后台运行时可以正常运行。但是,当我通过在指定时间之前向上滑动将其从最近的应用程序中删除时,该应用程序将无法播放音乐。我已经尝试了许多在线解决方案,例如添加android:process=":remote"
,但都没有用。这是我的代码:
在AndroidManifest.xml
中:
<receiver android:name=".controller.utils.AlarmReceiver"/>
<service android:name=".controller.utils.RingtonePlayingService"
android:enabled="true"/>
在OnCreate()
的{{1}}中:
MainActivity
在AlarmManager alarmMgr = (AlarmManager) getSystemService(Context.ALARM_SERVICE);
Intent alarmIntent = new Intent(this, AlarmReceiver.class);
PendingIntent pendingIntent = PendingIntent.getBroadcast(this, 0, alarmIntent, PendingIntent.FLAG_CANCEL_CURRENT);
Calendar calendar = Calendar.getInstance();
calendar.set(Calendar.HOUR_OF_DAY, 22);
calendar.set(Calendar.MINUTE, 25);
alarmMgr.set(AlarmManager.RTC_WAKEUP, calendar.getTimeInMillis(), pendingIntent);
中:
AlarmReceiver
在@Override
public void onReceive(Context context, Intent intent) {
Log.i("We are in the receiver.","Yeah!");
// Create an Intent to the ringtone service
Intent ringtoneIntent = new Intent(context, RingtonePlayingService.class);
// Start the ringtone service
context.startForegroundService(ringtoneIntent);
}
中:
RingtonePlayingService
我的情况是,如果我什么都不做,只是将应用程序留在后台,那么它将在22:25播放音乐;但是,如果我在22:25之前向上滑动以关闭我的应用程序,则该应用程序此时将不会响铃。我该如何解决?
ps。我在Google Play上下载了另一个警报应用程序,即使我通过向上滑动杀死了该应用程序,它也会在指定时间强制响铃。