2013-02-09 38 views
2

我的應用程序必須允許用戶設置預約的能力。這還包括在預約設定的指定日期通過未決意向觸發的警報。當設定的日期到達時,一條Toast消息顯示今天有預約。如何以及什麼掛起意圖ID設置爲

用戶還可以編輯他們的約會,這包括能夠打開和關閉鬧鐘(通過使用切換按鈕)我想能夠取消掛起的意圖,如果他們打開鬧鐘關閉。這顯然意味着我需要依靠一個唯一的ID。

這是我的主要問題:

什麼是設置ID的最佳方式?我沒有真正的「獨特」值我可以設置,我看到有人設置「當今時代」的ID,然後將其添加爲一個額外的,但如果我有兩個懸而未決的意圖報警完全相同的時間?

當我創建一個新的約會該自動遞增的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(); 
} 

}

回答

3

生成一個隨機數,並把它作爲你的唯一的ID。將該號碼存儲在SharePreferences或sqlite數據庫中。這也提供了在設備重啓之間保持警報的能力。

或者System.currentTimeMillis的()真應該給你所需要的東西。你很難得到兩個完全相同的毫米ID。

+0

非常感謝您的回覆。林當前正在考慮添加一個額外的列與我的約會數據庫與列名稱「警報」,然後我可以添加隨機生成的數字,並傳遞該ID內的值。你能看到這個問題嗎? – user1352057 2013-02-09 13:52:18

+2

如果你已經有一個數據庫,使用「ID」的行;)這是自動遞增的,你永遠不會有它重複。有時候最簡單的答案就是最好的答案。如果我的回答有幫助,不要忘記upvotes/checkmarks;) – 2013-02-11 03:23:02