阅读量:0
在Android中,AlarmManager是一个用于设置和管理系统定时任务的类
- 创建一个BroadcastReceiver类:
import android.content.BroadcastReceiver; import android.content.Context; import android.content.Intent; public class AlarmReceiver extends BroadcastReceiver { @Override public void onReceive(Context context, Intent intent) { // 在这里处理定时任务的逻辑 } }
- 在AndroidManifest.xml中注册BroadcastReceiver:
<application ...> ... <receiver android:name=".AlarmReceiver"> <intent-filter> <action android:name="android.intent.action.BOOT_COMPLETED" /> </intent-filter> </receiver> ... </application> </manifest>
- 使用AlarmManager设置定时任务:
import android.app.AlarmManager; import android.app.PendingIntent; import android.content.Context; import android.content.Intent; public class MainActivity extends AppCompatActivity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); // 创建一个Intent对象,指向AlarmReceiver Intent alarmIntent = new Intent(this, AlarmReceiver.class); // 使用PendingIntent包装Intent对象 PendingIntent pendingIntent = PendingIntent.getBroadcast(this, 0, alarmIntent, 0); // 获取AlarmManager实例 AlarmManager alarmManager = (AlarmManager) getSystemService(Context.ALARM_SERVICE); // 设置定时任务 long triggerAtMillis = System.currentTimeMillis() + 5 * 60 * 1000; // 5分钟后触发 alarmManager.set(AlarmManager.RTC_WAKEUP, triggerAtMillis, pendingIntent); } }
在这个示例中,我们首先创建了一个名为AlarmReceiver的BroadcastReceiver类。然后,在AndroidManifest.xml中注册了这个接收器。接下来,在MainActivity中,我们使用AlarmManager设置了一个定时任务,该任务将在5分钟后触发。当定时任务触发时,AlarmReceiver的onReceive方法将被调用,您可以在这个方法中处理定时任务的逻辑。