我的应用程序能够允许用户设置约会。这还包括一个警报,该警报通过在设置的指定约会日期的未决意图触发。当设置的日期到达时,一条祝酒消息显示今天有约会。
用户还可以编辑他们的约会,这包括能够打开和关闭警报(通过使用切换按钮)我希望能够在他们关闭警报时取消挂起的意图。这显然意味着我需要依赖一个唯一的 ID。
这是我的主要问题:
设置ID的最佳方法是什么?我没有可以设置的真正的“唯一”值,我看到人们将“当前时间”设置为 ID,然后将其添加为 EXTRA,但如果我有两个完全相同的时间待定意图警报怎么办?
当我创建一个新约会时,这会自动增加 ID,并将真正设置一个未“绑定”到该用户的待定意图警报。
这是我当前的待处理意图代码:
AlarmManager dateSet = (AlarmManager) getSystemService(Context.ALARM_SERVICE);
Intent intent = new Intent(this, DateAlarm.class);
PendingIntent pendingIntent = PendingIntent.getActivity(this, 0, intent, PendingIntent.FLAG_ONE_SHOT);
dateSet.set(AlarmManager.RTC_WAKEUP, setDate.getTime(), pendingIntent);
报警类:
package com.example.flybase2;
import android.app.Activity;
import android.content.Context;
import android.os.Bundle;
import android.view.Gravity;
import android.widget.Toast;
public class DateAlarm extends Activity {
Context context;
@SuppressWarnings("static-access")
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
context = this;
Toast newToast = new Toast(getApplicationContext());
newToast.setGravity(Gravity.FILL, 0, 0);
newToast.makeText(context, "Appointment is today", Toast.LENGTH_LONG).show();
}
}