简单的AlarmManager示例,用于在10分钟内触发活动

goo*_*ing 5 java user-interface android alarmmanager

我发现了许多类似的问题,但它们太复杂了(代码太多),至少我认为.

可以用几行代码完成这件事吗?我想在10分钟(比方说)分钟开一个活动,就是这样.谢谢.

Kuf*_*ffs 1

我使用的此功能根据“设置”参数设置或取消警报

public static void SetAlarm(Context c, long AlarmTime, int ItemID, String Message, Boolean Set) {
    Intent intent = new Intent(c, AlarmReceiver.class);
    intent.putExtra("Message", Message);
    intent.putExtra("ItemID", ItemID);

    PendingIntent sender = PendingIntent.getBroadcast(c, 8192 + ItemID, intent, PendingIntent.FLAG_UPDATE_CURRENT);

            // Clear the seconds to 0 for neatness
    Calendar ca = Calendar.getInstance();
    ca.setTimeInMillis(AlarmTime);
    ca.set(Calendar.SECOND, 0);
    AlarmTime = ca.getTimeInMillis();

    // Get the AlarmManager service
    AlarmManager am = (AlarmManager) c.getSystemService(Context.ALARM_SERVICE);
    if (Set) {
        am.set(AlarmManager.RTC_WAKEUP, AlarmTime, sender);
    } else {
        am.cancel(sender);
    }
}
Run Code Online (Sandbox Code Playgroud)

然后,您需要一个广播接收器来处理警报并执行您想做的任何操作。

public class AlarmReceiver extends BroadcastReceiver {

@Override
public void onReceive(Context context, Intent intent) {
    try {
        Bundle bundle = intent.getExtras();
        String Message = bundle.getString("Message");
        int ItemID = bundle.getInt("ItemID");

        // Do what you want to do, start an activity etc

    } catch (Exception e) {
        e.printStackTrace();
    }
}
Run Code Online (Sandbox Code Playgroud)

}