2012-07-26 12 views

回答

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); 
    } 
} 

你會那麼需要的廣播接收器來處理報警,做什麼是你想做的事取消報警。

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(); 
    } 
} 

}

+0

我要爲我的RestApi java微服務創建一個AlarmManagement框架。我可以使用這個andriod應用程序AlarmManager嗎?還是在java/Spring框架中有類似的AlarmManager?這可能是一個非常愚蠢的基本問題。但我所有的谷歌搜索只顯示android AlarmManger。 – user2617611 2017-01-26 19:28:02

2

要10分鐘(比方說)使用此代碼

AlarmManager alarmMgr = (AlarmManager)getSystemService(ALARM_SERVICE); 
Intent intent = new Intent(this, ShortTimeEntryReceiver.class); 
PendingIntent pendingIntent = PendingIntent.getBroadcast(this, 0, intent, PendingIntent.FLAG_UPDATE_CURRENT); 
alarmMgr.setRepeating(AlarmManager.RTC_WAKEUP, System.currentTimeMillis(),10*60*1000, pendingIntent); 

要啓動活動

public class ShortTimeEntryReceiver extends BroadcastReceiver{ 


@Override 
public void onReceive(Context context, Intent intent) { 

try { 
     Bundle bundle = intent.getExtras(); 
     String message = bundle.getString("alarm_message"); 

     // Your activity name 
     Intent newIntent = new Intent(context, ReminderPopupMessage.class); 
     newIntent.putExtra("alarm_message", message); 
     newIntent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK); 
     context.startActivity(newIntent); 
     } catch (Exception e) { 
     e.printStackTrace(); 

     } 
} 
} 

清單檔案中的添加設置報警以下

<receiver android:name=".ShortTimeEntryReceiver" 
         android:enabled="true" 
         android:process=":remote"> 
      </receiver> 
+0

你解決了你的問題... – GoCrazy 2012-07-26 15:27:38