我正在开发一个Android项目,该项目有时需要运行一些任务。由用户选择要执行的任务以及需要执行的时间。我尝试使用BroadcastReceiver
和AlarmManager
在其时间执行任务。但是问题是-关闭应用程序后任务停止执行。下面是我的BroadcastReceiver
和AlarmManager
类的代码。
public class AlarmReceiver extends BroadcastReceiver {
private static final String TAG = "AlarmReceiver";
@Override
public void onReceive(Context context, Intent intent) {
Log.d(TAG, "onReceive: Alarm received");
// perform the task here using the values received by Intent
}
}
我用AlarmReceiver
称呼为AlarmManager
:
Intent alarmIntent = new Intent(this, AlarmReceiver.class);
alarmIntent.putExtra("foo", foo);
alarmIntent.putExtra("bar", bar);
PendingIntent pendingIntent = PendingIntent.getBroadcast(this, 0, alarmIntent, 0);
AlarmManager alarmManager = (AlarmManager) getSystemService(Context.ALARM_SERVICE);
alarmManager.set(AlarmManager.RTC_WAKEUP, date.getTime(), pendingIntent);
其中date.getTime()
是要执行任务的时间。
一切正常。但是我想要一个解决方案,即使强制关闭该应用程序,也可以使该工作正常。我还希望该解决方案能够执行一个接一个甚至第二天安排的多个此类任务。 如果可能
注意:我曾想过使用Service
类来完成此操作,但无法弄清楚如何编写Service
类。
我正在开发一个Android项目,该项目有时需要运行一些任务。由用户选择要执行的任务以及需要执行的时间。我已经尝试过...
我认为强制关闭不会使任务继续工作。不过,您可以在系统事件上注册BroadcastReceiver,以使应用恢复正常运行(例如android.intent.action.BOOT_COMPLETED和QUICKBOOT_POWERON)