public class MainActivity extends AppCompatActivity { private static final int NOTIFICATION_ID = 0; AlarmManager alarmManager; Intent AlarmReceiver; PendingIntent pi; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); alarmManager = (AlarmManager) getSystemService(ALARM_SERVICE); AlarmReceiver = new Intent(this, AlarmReceiver.class); pi = PendingIntent.getBroadcast (this, NOTIFICATION_ID, AlarmReceiver, PendingIntent.FLAG_UPDATE_CURRENT); alarmManager.setExact(AlarmManager.ELAPSED_REALTIME_WAKEUP,SystemClock.elapsedRealtime() + 5000, pi);//定时 } public void cancel(View view) {//取消定时 alarmManager.cancel(pi); } }
新建一个类 AlarmReceiver 继承 BroadcastReceiver
public class AlarmReceiver extends BroadcastReceiver { @Override public void onReceive(Context context, Intent intent) { //
Toast.makeText(context, "time's up", Toast.LENGTH_SHORT).show();
}
}
最后在manifest文件中注册:
<receiver android:name=".AlarmReceiver" android:exported="true">
<intent-filter>
<action android:name="AlarmReceiver" />
</intent-filter>
</receiver>